列舉型別(Enum)我相信大家很常用,定義各種列舉型別實務上也很常見,
根據預設,列舉成員的相關常數值為類型 int ; 它們是從零開始,並依照定義文字順序遞增加1。
對於任何列舉型別都可和基礎型別進行轉換,如下
public enum Season{Spring,Summer,Autumn,Winter}public class EnumConversionExample{public static void Main(){Season a = Season.Autumn;Console.WriteLine($"Integral value of {a} is {(int)a}"); // output: Integral value of Autumn is 2var b = (Season)1;Console.WriteLine(b); // output: Summervar c = (Season)4;Console.WriteLine(c); // output: 4}}
前一段時間我在追系統問題,偶然發現某段函式大量使用enum ToString,
看完下面簡單測試,你就會知道enumToString對系統效能影響
結果
可以看到原生ToString的記憶體分配相差24倍,執行時間相差約48倍,
當要取得相關字串型別,建議使用nameof運算式(執行期間不會有任何作用)。
Reference: