.NET 6新特性试用 | 可空引用类型
前言
在查看《隱式using指令》功能時,我們在csproj中發現這樣一個屬性:
那么,Nullable到底是干嘛的?
可為空上下文
嚴格來說,這不是新特性,而是C# 8.0引入的特性之一。該特性用于指示引用類型是否接受null值:
只是在.NET 6以前,該特性默認是禁用的,你可以在VS2019中手工啟用:
當啟用該特性時,對于不接受null值的引用類型有可能收到null時,將出現警告消息。
Demo
假設有下列方法,接受一個字符串類型(引用類型)的參數:
static?void?test(string?str) {... }如果在運行時對其傳入null值,則會引發System.NullReferenceException異常:
而現在,在代碼編輯器中,你將看到黃色波浪線,告訴你使用了不允許的空引用類型:
如果變量可以允許有一null值,那么只需添加一個"?":
static?void?test(string??str) {Console.WriteLine(str?.Length); }此外,你還可使用指令在源代碼的任何位置設置,明確當前文件是否使用可為空上下文:
#nullable enable:將可為空注釋上下文和可為空警告上下文設置為“已啟用”。
#nullable disable:將可為空注釋上下文和可為空警告上下文設置為“已禁用”。
#nullable restore:將可為空注釋上下文和可為空警告上下文還原到項目設置。
#nullable disable warnings:將可為空警告上下文設置為“已禁用”。
#nullable enable warnings:將可為空警告上下文設置為“已啟用”。
#nullable restore warnings:將可為空警告上下文還原到項目設置。
#nullable disable annotations:將可為空注釋上下文設置為“禁用”。
#nullable enable annotations:將可為空注釋上下文設置為“啟用”。
#nullable restore annotations:將注釋警告上下文還原到項目設置。
結論
默認開啟Nullable,好處就是在開發的時候,會不斷的驗證引用類型實例是否可為null,避免了引發NullReferenceException異常的很多錯誤。
如果你覺得這篇文章對你有所啟發,請關注我的個人公眾號”My IO“
總結
以上是生活随笔為你收集整理的.NET 6新特性试用 | 可空引用类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WPF 透明窗口在桌面上放虫子。。。
- 下一篇: asp.net ajax控件工具集 Au