我試圖掩蓋edi文件上的索引位置...根據(jù)情況,我可能會在索引上放置2或3個東西。使用一個枚舉隱藏“幻數(shù)”會很酷,并且驚訝地看到您可以將多個枚舉分配給相同的值,如下所示:public enum Color{ Red = 1, Blue = 1, Green = 1}編譯器對此很滿意。我沒想到這行得通。我不需要回退到枚舉,因此我不必?fù)?dān)心嘗試返回,但這聽起來很時髦。為什么CLR允許枚舉有多個值,我應(yīng)該為此使用結(jié)構(gòu)嗎?(一個結(jié)構(gòu)似乎比枚舉更重,這似乎行得通)
3 回答

HUWWW
TA貢獻(xiàn)1874條經(jīng)驗 獲得超12個贊
那是完全合法的C#。從C#語言規(guī)范版本4.0,第14.3節(jié):
多個枚舉成員可以共享相同的關(guān)聯(lián)值。這個例子
enum Color
{
Red,
Green,
Blue,
Max = Blue
}
顯示一個枚舉,其中兩個枚舉成員Blue和Max具有相同的關(guān)聯(lián)值。

開心每一天1111
TA貢獻(xiàn)1836條經(jīng)驗 獲得超13個贊
相同的數(shù)值但名稱不同,別無其他??赡苁抢?/p>
public enum Color
{
DefaultColor = 1,
Red = 1,
Blue = 2
}
在某些情況下可能有意義,但在很多情況下卻沒有意義。當(dāng)您將這些值解析回并調(diào)用colorValue.ToString()時,您將獲得最后一個作為字符串化值的值(在本例中為Red),但是您將失去默認(rèn)顏色的概念,因為這是同一回事。至少以您建模數(shù)據(jù)的方式。如果要將其分開,則對不同的內(nèi)容使用不同的值。
- 3 回答
- 0 關(guān)注
- 275 瀏覽
添加回答
舉報
0/150
提交
取消