C#中枚举值名称的别名

时间:2015-10-07 11:30:36

标签: c# enums

我可以在C#中为枚举值名称创建别名吗? 例如,我有两个文件:A和B.

public class A
{
    public enum myEnum 
        {
            value_1,
            value_2 
        };
}

我想在B类中使用这个枚举:

public class B
{
 private A.myEnum[] tab = { A.myEnum.value_1, A.myEnum.value_2,  A.myEnum.value_1 ..}

}

我想为别人做一个别名:  A.myEnum.value_1和A.myEnum.value_2 所以我可以写

private A.myEnum[] tab = { alias_1, alias_2},

3 个答案:

答案 0 :(得分:3)

我想我可能会遗漏一些东西,但是:

def compute_msd_np(xy, t, t_step):
    shifts = np.floor(t / t_step).astype(np.int)
    msds = np.zeros(shifts.size)
    msds_std = np.zeros(shifts.size)

    for i, shift in enumerate(shifts):
        diffs = xy[:-shift if shift else None] - xy[shift:]
        sqdist = np.square(diffs).sum(axis=1)
        msds[i] = sqdist.mean()
        msds_std[i] = sqdist.std(ddof=1)

    msds = pd.DataFrame({'msds': msds, 'tau': t, 'msds_std': msds_std})
    return msds

答案 1 :(得分:0)

使用像

这样的辅助方法
public static myEnum GetEnumName(string str)
{
    switch(str)
    {
        case "alias_1": return myEnum.Value_1;
        case "alias_2": return myEnum.Value_2;
        default: throw new Exception();
    }
}

答案 2 :(得分:0)

您可以获取所有值并将其转换为数组:

myEnum[] tab = Enum.GetValues(typeof(myEnum)).Cast<myEnum>().ToArray();