c# – 正确识别具有相同基础值的枚举
假设我定义了这个枚举,其中有几个成员具有相同的基础值:
enum Number { One = 1,Eins = 1,Uno = 1 } 根据MSDN documentation:
所以,例如, var number = Number.One; Console.WriteLine(number); 给我以下输出:
打印所有枚举成员, Console.WriteLine($"{Number.One} {Number.Eins} {Number.Uno}"); 产生以下输出:
但是,取每个成员的名字, Console.WriteLine($"{nameof(Number.One)} {nameof(Number.Eins)} {nameof(Number.Uno)}"); 给出以下结果:
显然,枚举成员是可分离的.我可以利用这种分离,即有什么方法可以将特定的Number成员分配给变量,并且每当访问变量时都会返回相同的成员吗? 解决方法
嗯,这不完全正确……它们只能在编译时分离. 你看,nameof实际上是一个在编译时评估的表达式.这是一个不变的表达.这可以通过为const指定一个表达式来证明: const string a = nameof(Number.One); 它汇编. 另一方面,尝试使用字符串插值获取枚举值的字符串表示形式,在运行时进行评估,因此不会编译: const string a = $"{Number.One}"; 在运行时,枚举案例是不可分的,所以答案是:
没有”. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |