我可以在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},
答案 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();