带小数值的枚举或类似的一些

Cri*_*jon 5 c# enums combobox winforms

基本上我想要定义一个带小数值的枚举,但这是不可能的.另一种选择是:

public static class EstadoRestriccion
{
    public const decimal Valur1 = 0;
    public const decimal Value2 = 0.5M;
    public const decimal Value3 = 1;
};
Run Code Online (Sandbox Code Playgroud)

但是我需要在组合框中添加这些常量,其中显示的选项应该是常量的名称,并且SelectedItem应该返回值(0,0.5M,1)或类似的值.我知道这是可能的,但它很难看.

有了枚举,我可以轻松地做到这一点: comboBox.DataSource = Enum.GetValues(typeof(MyEnum));

根据我的要求模拟枚举的最佳方法是什么?

Ode*_*ded 6

字典可能是一个不错的选择.

Dictionary<string,decimal> 可能是一个很好的候选人 - 让你命名这些价值观.

var values = new Dictionary<string,decimal>();
values.Add("Value1", 0m);
values.Add("Value2", 0.5m);
values.Add("Value3", 1m);
Run Code Online (Sandbox Code Playgroud)

这可以包装在一个类中,因此您只能通过索引而不是整个Dictionary<TKey,TValue>接口公开getter .


joc*_*oce 2

static readonly十进制数组怎么样?

public static readonly decimal[] myValues = new[] {0, 0.5M, 1};
Run Code Online (Sandbox Code Playgroud)