C# 使用元組達成列舉功能(儲存 string 資料)

平時我們可以使用列舉(enum) 來避免「魔法數字」,可以將我們自訂的各種狀態變成強型別,方便在程式中使用:
    
public enum IceLevels
{
    None,
    Little,
    Less,
    Normal,
    More,
}
    

也可以在列舉上自訂代表的資料值:
    
public enum IceLevels
{
    None = 0,
    Little = 1,
    Less = 2,
    Normal = 3,
    More = 4,
}
    

但是非常可惜的就是列舉無法簡單的儲存字串(string)資料。

筆者在這裡提供了一種邪門歪道,使用元組(Tuple)來假裝成是列舉(enum),達成既可以是強型別又可以儲存字串的簡單方式:
    
    public static (string None, string Little, string Less, string Normal, string More) IceLevels =  ("去冰", "微冰", "少冰", "正常冰", "多冰");
    

使用方式如下:
    
var iceLevelsNormal = IceLevels.Normal;
Console.WriteLine(iceLevelsNormal); // 正常冰
    

非常簡單!
不過缺點就是他沒有辦法簡單的歷遍,沒有辦法簡單的在字串和類型中轉換,不過相信在特定的情境中這個方式還是是有點用處的,分享給大家!

留言

張貼留言

如果有任何問題、建議、想說的話或文章題目推薦,都歡迎留言或來信: a@ruyut.com