我可以在Reflector中看到公共“value__”字段的目的是什么?

时间:2011-03-06 22:47:08

标签: .net enums reflector

我正在查看我在Reflector中创建的枚举,并且有一个名为“value __”的公共整数字段。

该会员的目的是什么?

对于答案,链接或对文档的引用是正确的。

谷歌搜索是一种痛苦,因为“value__”正在返回“值”的命中。

我一直在搜索近一个小时,只找到了下面的链接。其中大多数是不同网站上的同一篇文章。它们都显示了如何通过反射访问成员,但没有一个解释成员的用途。

更新

下面的最后一个链接讨论(在底部)你不能将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

1 个答案:

答案 0 :(得分:8)

JIT编译器需要一个值类型的定义,在它被装箱时描述其布局。他们中的大多数被烘焙到mscorlib,如System.Int32。 enum 关键字可让您创建新的值类型。因此,编译器必须在元数据中为其提供定义。这是你在看什么。您将看到ToString()使用的每个枚举成员的静态字段。一个实例字段名称value__存储枚举值。关键点在于它仅存在于枚举值的盒装版本中。