あなたは読み取り専用文字列プロパティを使用することができますすることができ、それは通常の列挙型の使用状況のようではありません知っている:
if(condition_variable == Condition.Type1)//will do a string compare here.
{
...
}
:
public class Condition
{
public static readonly string Type1 = "All_The_Conditions";
public static readonly string Type2 = "Any_Conditions";
}
はこのようにそれを使用します
BUT
しかし、上記の解決策はswitch
ステートメントでは機能しません。
switch (condition_variable)
{
case Condition.Type1://can only be done with const
....
break;
}
enums (See MSDN)に展開するにはthis post for static readonly vs const variables.
を参照してください:
彼らがデフォルトを持っているあなたはconst
public class Condition
{//this could be a better solution..
public const string Type1 = "All_The_Conditions";
public const string Type2 = "Any_Conditions";
}
を使用することができ、その場合にはあなたはこのようにそれを使用することができます基本タイプはint
です。あなたは、次の整数型のいずれかに基本となるタイプを変更することができます:私は私の答えを改善するための手助け@BryanへとR0MANARMY @byte, sbyte, short, ushort, int, uint, long, or ulong.
感謝を。
+1列挙型は定義によって数値型なので、文字列はサポートされません。この解決法を 'switch'ステートメントで使うことはできないことに言及する価値があります。 –
@BryanWatts優れたキャッチ。 R0MANARMYうまく同じ行を考えていたと質問を更新しました:) – gideon
@ R0MANARMYああタイプミス、私はコピーし、前のコードブロックを貼り付け、それを修正しました。 (私は現時点で開いているプロジェクトでこのようなものを使用しました;) – gideon