首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

C# 隱式列舉轉換:只有常數 0 可以隱式轉為列舉類型

     編輯:關於C#

隱式列舉轉換的唯一規則

C# 允許將十進位整數常數 0隱式轉換為任意列舉類型。除此之外,不存在其他整數到列舉的隱式轉換。

程式範例

using System;
enum Weekday { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday }

class Test {
    public static void Main() {
        Weekday day;
        day = 0;        // 合法:隱式轉換
        Console.WriteLine(day); // 輸出:Sunday (或 0)
        
        // day = 1;     // 編譯錯誤:Cannot implicitly convert type 'int' to 'Weekday'
    }
}

為什麼只有 0?

列舉的底層預設型別為 int,且第一個成員的值為 0。允許 0 隱式轉換是為了方便預設值初始化(如 Weekday day = 0; 相當於 Weekday day = Weekday.Sunday;)。其他整數值需要顯式轉換 (Weekday)1,以確保開發者明確意圖,避免誤用魔術數字。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved