代码之家  ›  专栏  ›  技术社区  ›  Peter Morris

为什么C#允许一个无效的枚举值

  •  10
  • Peter Morris  · 技术社区  · 14 年前

    我花了一段时间试图理解为什么我的WPF应用程序没有数据绑定到enum属性,这就是原因。

     static void Main(string[] args)
     {
      MyEnum x = 0;
      Console.WriteLine(x.ToString());
      Console.ReadLine();
     }
    
     public enum MyEnum
     {
      First = 1,
      Second = 2
     }
    

    本质上,问题是在我绑定到的类的构造函数中没有为enum属性设置默认值,因此它默认为零。

    1 回复  |  直到 14 年前
        1
  •  11
  •   Jon Skeet    14 年前

    不,不幸的是没有。

    C#枚举只是命名的数字,真的-根本没有验证。我同意看到这一点,以及带有行为的枚举(如Java)会非常好。不过,我没有听到任何迹象表明它很快就会到来:(