2017-05-17 19 views
0

我試圖定義一個類,我想從常量的有限列表的行爲有點像一本字典拉參數之一的列表中進行選擇。我不確定該調用或搜索什麼,但我想我已經看到一些內置的類使用這個。創建類和常量

這樣做的原因是,我使用需求這一類的API被建立在一定的方式,並使用了大量的數字不以可讀感。我寧願使用有意義的單詞來創建對象,而不是與它一起使用的ID號碼。

實施例:包含= 2,不含= 5,大於= 3,小於= 4等

識別TestClass富=新識別TestClass(CONTAINS 「世界你好」);

我想這就像一本字典之類的操作,使代碼的其餘部分將第一個參數爲「2」,而不是字符串「包含」

我是從我的腦海或這可能嗎?謝謝!

+2

你想要一個枚舉? http://stackoverflow.com/questions/943398/get-int-value-from-enum – rene

+0

不太清楚這是什麼意思/需要 –

+0

時間閱讀https://docs.microsoft.com/en-us/dotnet/文章/ CSHARP /編程引導/枚舉類型,然後 – rene

回答

2

這是一個enum。你可以讓編譯器分配的任意數值,如果你喜歡:

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

,並明確投:

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; } 

如果你有一些理由可以指定數值

int x = (int)MyOperator.LessThan; 

同時字符串化:

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

也許Operand應該是字符串,或者整個事情應該是通用的,但你沒有說。這是一個例子。

+1

@ S.Petrosov我吸取了有關測試 –

+0

是的教訓,這就是我一直在尋找。說得好。 –