为什么C#允许无效的枚举值
发布时间:2020-12-15 03:42:21 所属栏目:百科 来源:网络整理
导读:我花了一段时间试图理解为什么我的 WPF应用程序不是数据绑定到一个枚举属性,这是原因. static void Main(string[] args) { MyEnum x = 0; Console.WriteLine(x.ToString()); Console.ReadLine(); } public enum MyEnum { First = 1,Second = 2 } 本质上问题
我花了一段时间试图理解为什么我的
WPF应用程序不是数据绑定到一个枚举属性,这是原因.
static void Main(string[] args) { MyEnum x = 0; Console.WriteLine(x.ToString()); Console.ReadLine(); } public enum MyEnum { First = 1,Second = 2 } 本质上问题是在I类绑定到的构造函数中没有为枚举属性设置默认值,因此它默认为零. 有没有什么可以告诉C#编译器,我希望它只接受有效的值(默认为最低值)?我不希望我的属性接受无效值,我不想为使用枚举的每个属性编写setter代码. 解决方法
不,不幸的是没有.
C#枚举只是命名的数字,真的 – 根本没有验证.我同意看到这一点,以及行为枚举(如在Java中)是非常好的.我没有听到任何建议即将到来的任何时间 请注意,类型的默认值将始终是由“全零位”表示的值 – 真的没有办法在类型系统内完成.因此,您需要确定一个明智的默认值,否则即使在一个有效的系统中也需要对其进行明确的测试(比如针对引用类型的null进行测试). 为了清楚起见,我相信有时候会有“数字的名字”的类型,但我认为一个真正受限制的价值观将更有用. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |