
null! 運算子的意思
在 C# 8.0 及其可空引用型別功能中,! 運算子有了新的用途,稱為「空值容許運算子」。套用於類型時,此運算子會覆寫值的可空性,使其變為不可空,表示儘管預設是可空的,但 null 被視為「非空」類型。
實際範例
考慮一個類,其中 LastName 屬性是可空的,而 MiddleName 屬性是不可空的:
<code class="language-csharp">public class Person
{
public string? LastName { get; set; }
public string MiddleName { get; set; } = null!;
}</code>第一行和第二行之間的差異
LastName 屬性是可空的,允許它保存 null 值,由 ? 運算子表示。 MiddleName 屬性是不可空的,以 ! 表示。這意味著它不能保存 null 值。但是,null! 表達式明確地覆寫了此不可空性,並將 null 視為非空值。 技術解釋
C# 8.0 引入了“空值安全性”,其中所有引用類型預設都是不可空的。要表示可空類型,必須使用 ? 運算子。相反,! 運算子可以應用於可空類型以指示不可空性。
注意事項
! 運算子僅停用編譯器層級的檢查;如果值為 null,則仍可能發生執行時異常。 以上是C# 8.0 中的「!」(空值寬容)運算子是什麼意思?的詳細內容。更多資訊請關注PHP中文網其他相關文章!