C#和C中的enum关键字有什么区别?

Ram*_*esh 0 c c# enums

我可以知道enumC#和C中的关键字有什么区别?

我试图enum在C#中使用c风格的变量,但我收到了错误.当我搜索谷歌它说,如果我们有枚举天{星期六,星期日,星期一,星期二,星期三,星期四,星期五}; 然后我们需要在C#中使用Days.Sat,而不是直接在C中使用Sat.为什么会这样?

Mar*_*ell 5

简单地说:因为这是指定两种不同语言的方式.在C中,名称的范围是声明级别,在C#中,名称从属于枚举类型.后一种方法有助于避免歧义和冲突:

  • 对于读者来说,显然Sat意味着"一周中的哪一天"?为什么不是"身体姿势"?还是"入学考试"?
  • 当多个枚举在不同的上下文中声明相同的名称时,会发生什么,可能具有不同的值?
  • 它还可以提供更好的IDE工具支持 - 只显示适当的选项

但"为什么会这样?" 很简单:因为这是每种语言的设计方式.