前言
在寫 C# 時,有些關於 Null 的一些警告內容為 CS8600 或是 CS8602 ,如下,
CS8600 // 正在將 Null 常值或可能的 Null 值轉換為不可為 Null 的型別。
CS8602 // 可能 null 參考的取值 (dereference)。
從這些警告來看,筆著想到一個問題,
通常怕物件為 null ,怕會有 NullReferenceException 通常都會加上 ? ,
那如果確定該物件不為 null 要加上什麼呢?
用法
先回到 CS8600 或是 CS8602 的警告問題,
如果要讓警告消失的話,可以在程式碼的下、下去加入 停用 CS8600 或是 CS8602 的標註,如下,
1 | const string jsonString = @"{""FirstName"":""RM"", ""LastName"":""Ho""}"; |
或是
1 | static void Foo(string? argument) |
當然,警告就是要讓開發人員去檢視是否真的會有 null 的問題,
所以相信很少人會真的去加 #pragma warning disable 。
那如果它真的不會是 null 在 C# 要加上什麼呢?
答案就是 ! ,跟 TypeScript 一樣,都是 **!**,如下,
1 | const string jsonString = @"{""FirstName"":""RM"", ""LastName"":""Ho""}"; |
1 | static void Foo(string? argument) |