2016-12-16 22 views
2

私は宣言された列挙型についていくつかのチェックをしていますが、それはメンバーの型であり、それ自身のメンバーではないので、なぜInt32 value__が常に宣言された列挙型の最初の列挙型メンバーとして表示されるのだろうと思いますか?テストへなぜ 'Int32 value__'は列挙型メンバーとして表示されますか?

サンプルコード:

[TestMethod] 
public void TestEnumMember() 
{ 
    var type = typeof(Colors); 
    var info = type.GetTypeInfo(); 
    var members = info.DeclaredMembers.ToArray(); 
    foreach (var member in members) 
    { 
     Debug.WriteLine(member); 
    } 
} 

public enum Colors 
{ 
    Red, 
    Blue, 
    Green 
} 

出力:

Debug Trace: 
Int32 value__ 
Colors Red 
Colors Blue 
Colors Green 

答えて

5

まあ、常にではありません。列挙型の定義をpublic enum Colors : byteに変更してください。値のメンバーはByte value__となります。

列挙型の最初のメンバーが、列挙型の値の実際のバッキングストレージであることがわかります。

関連する問題