我正在查看我在Reflector中创建的枚举,并且有一个名为“value __”的公共整数字段。
该会员的目的是什么?
对于答案,链接或对文档的引用是正确的。
谷歌搜索是一种痛苦,因为“value__”正在返回“值”的命中。
我一直在搜索近一个小时,只找到了下面的链接。其中大多数是不同网站上的同一篇文章。它们都显示了如何通过反射访问成员,但没有一个解释成员的用途。
http://tfl09.blogspot.com/2008/12/enums-enum-values-and-powershell.html
C# function that accepts an Enum item and returns the enum value (not the index)
http://www.mail-archive.com/dotnet@discuss.develop.com/msg02431.html
更新
下面的最后一个链接讨论(在底部)你不能将value__用作枚举值,因为它被重新保留,但没有说明原因。
http://www.vijaymukhi.com/documents/books/csadv/chap3.htm
编译器错误
错误CS0076:枚举器名称“value__”被保留 不能使用 ... 仅对于枚举,它不允许我们使用保留字值___ 因为它必须在内部使用相同的词来跟踪 枚举。
更新2
下面的链接是MSDN页面,对于编译器错误,也说“value__”是保留的。但仍然没有找到会员所做的事情的喜悦....
http://msdn.microsoft.com/en-us/library/e3988xhs(v=vs.71).aspx
答案 0 :(得分:8)
JIT编译器需要一个值类型的定义,在它被装箱时描述其布局。他们中的大多数被烘焙到mscorlib,如System.Int32。 enum 关键字可让您创建新的值类型。因此,编译器必须在元数据中为其提供定义。这是你在看什么。您将看到ToString()使用的每个枚举成员的静态字段。一个实例字段名称value__存储枚举值。关键点在于它仅存在于枚举值的盒装版本中。