2012-11-22 17 views
1

有沒有辦法在C#中實現反向枚舉或常量文件?我有一個列表中的ID,並希望將一個常量字符串映射到此ID。我在想是這樣的:反常量

定期enum

public enum StaticUser 
{ 
    DB = 1, 
    Order = 2 
} 

我需要什麼:

public enum StaticUser 
{ 
    1 = DB, 
    2 = Order 
} 

回答

1

所以你有一個枚舉,

public enum StaticUser 
{ 
    DB = 1, 
    Order = 2 
} 

如果你想獲得成員的名字,你可能只是做ToString

string staticUserString = ((StaticUser)1).ToString(); 

這就引起字面1StaticUser然後使用ToString返回枚舉類型的字符串表示。

在此示例之後staticUserString == 'DB'true


如果你想爲一個特定的值,那麼你需要自己轉換功能,財產以後像這樣的一些其他的字符串常量,

public static string ToSpecialString(this StaticUser source) 
{ 
    const string dBString = "Database" 

    switch (source) 
    { 
     case StaticUser.DB: 
      return dBString; 

     default: 
      return source.ToString(); 
    } 
} 

那麼你可以做

string specialStaticUserString = ((StaticUser)1).ToSpecialString(); 

在此之後示例staticUserString == 'Database'true

+0

很酷,就是這樣。不知道那種演員是可能的。 – 65756C626F74

0

您可以簡單地把id來枚舉:

StaticUser user = (StaticUser)myId;