2017-05-17 8 views
0

私は、辞書のように動作する定数の有限リストから取りたいクラスとパラメータの1つを定義しようとしています。私は本当にこれを呼び出すか検索するのか分からないが、組み込みクラスの中にはこれを使うものがあると思う。クラスを作成し、定数のリストから選択

これは、私が使用しているAPIがこのクラスを特定の方法で構築する必要があり、読みやすい意味を持たない多数の数字を使用しているためです。私はむしろ意味のある単語を使ってオブジェクトを作成したいのです。

例:= 2、= 5が含まれていない、= 3より大きい、= 4未満などが含ま

TestClassをFOO =新しいTestClassを( "世界ハロー"、含まれています)。

コードの残りの部分は、文字列を「2」として最初のパラメータを扱い、ないように、私は、これは一種の辞書のように動作したいと思いますが

「を含む」私は私の心のうちAMまたはこれは可能ですか?ありがとう!

+2

Enumが必要ですか? http://stackoverflow.com/questions/943398/get-int-value-from-enum – rene

+0

意味/内容がわからない –

+0

読む時間https://docs.microsoft.com/en-us/dotnet/ articles/csharp/programming-guide/enumeration-types – rene

答えて

2

enumです。あなたが好きなら、コンパイラは任意の数値を割り当てさせることができます。

public enum MyOperator { 
    Contains, 
    DoesNotContain, 
    GreaterThan, 
    LessThan 
} 

public class TestClass { 
    public TestClass(MyOperator op, Object operand) { 
     this.Operator = op; 
     this.Operand = operand; 
    } 

    public MyOperator Operator { get; set; } 
    public Object Operand { get; set; } 

あなたは、いくつかの理由がある場合は、数値を指定することができます。

public enum MyOperator { 
    Contains = 2, 
    DoesNotContain = 5, 
    GreaterThan = 3, 
    LessThan = 4 
} 

、明示的にキャスト:

int x = (int)MyOperator.LessThan; 

また、文字列化:

public void F(MyOperator op) { 
    MessageBox.Show(op.ToString()); 
} 

たぶんOperandは文字列でなければならないかもしれないし、多分総称でなければならないかもしれないが、あなたは言っていない。それは例です。

+1

@ S.Petrosovテストについて教訓を学んだ –

+0

これは私が探していたものです。よく置きます。 –

関連する問題