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

C# as 運算子:安全參考轉換、null 回傳與避免 InvalidCastException

     編輯:關於C語言

as 運算子 執行參考轉換或裝箱轉換,失敗時回傳 null而不拋例外。語法:expr as Type,Type 必須為參考型別(類別、介面、委派、陣列、object)。

核心規則

  • 僅支援參考/裝箱轉換,不支援使用者定義轉換、拆箱、數值轉換。
  • 結果型別永遠為 Type。
  • expr as Type 等價:expr is Type ? (Type)expr : (Type)null(但只檢查一次)。

程式碼範例


string s = 'a' as string; // 編譯警告 CS0458:char 永不為 string
// 結果:s = null,程式繼續執行

object obj = "hello";
string str = obj as string; // str = "hello"
int? num = obj as int?;     // 編譯錯誤:int? 為實值型別

as vs 強制轉型

as(T)expr
失敗行為回傳 null拋 InvalidCastException
適用型別僅參考型別任意型別
拆箱支援❌✅
使用者定義轉換❌✅

最佳實務

  • 預期轉換可能失敗且失敗為正常流程 → 用 as + null 檢查。
  • 轉換必須成功、失敗代表程式錯誤 → 用強制轉型讓例外暴露 Bug。
  • C# 7+ 偏好 is T v 型別模式,語意更清晰。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved