WeihanLi.Npoi 1.14.0 Release Notes

WeihanLi.Npoi 1.14.0 Release Notes

Intro

週末更新了一下項目,開始使用可空引用類型,而且移除了 net45 的支持,僅支持 netstandard2.0git

Changes

Remove net45 Support

基礎庫打算移除 net45 的支持,由於不少基礎的API,在 netstandard2.0 中是有的,可是 net45 是沒有的,好比 Array.Empty/Task.CompletedResult 等,因此不少時候須要爲 net45 專門寫一些代碼來實現相似的功能,並且隨着 .NET Core 的開發者愈來愈多,.NET Core 愈來愈成熟,因此打算拋棄 net45 也可使得維護更爲方便和簡單。github

Nullable Reference

新版本徹底啓用了 Nullable Reference Types 可空引用類型,之因此啓用可空引用類型,一來是但願可以爲開發者們使用提供更好的體驗,開發者在開發的時候,就能夠知道本身用到的 API 輸入參數是否容許爲 null,若是不容許爲 null 開發者能夠在調用 API 以前檢查 null,避免輸入一個不指望的 null ,對於 API 的返回值也會更加清晰,能夠清晰地瞭解一個 API 的返回值是否會爲 null,若是會爲 null 則可能須要作空檢查,若是不會爲 null 就不須要作沒必要要的空檢查了。測試

Sample

提供了一個示例項目,示例項目是 dotnet core 3.1 的項目,而且項目並無啓用可空引用類型,下面是一段示例代碼:excel

var workbook = ExcelHelper.LoadExcel(excelPath:null);

if (workbook is null)
{
    Console.WriteLine("workbook is null");
}

IWorkbook ExcelHelper.LoadExcel(string excelPath) 這個 API 的輸入參數期待的是一個不可空引用類型,返回值是一個不爲空的引用類型,雖然示例項目並無啓用可空引用類型,VS 也是會給出一些提示的,提示以下:code

若是將一個 null 傳遞給一個是不可空引用類型的值會怎麼樣呢,這取決於實現代碼的處理,在前面一篇文章我已經提到過了,指望輸入值是不可空引用類型時,依然須要作必要的空檢查,實際改造的時候我也是這麼作的,若是不可空引用類型接收了一個 null 基本都會得到一個 ArgumentNullExceptionblog

上述代碼執行結果輸出以下:開發

More

從上面的示例能夠看的出來,可空引用類型可以爲咱們帶來很大的便利,並且也能夠增長程序的健壯性,經過 VS 的提示,啓用可空類型能夠將提示提高爲 Warning 更好的提高代碼可靠性,也能夠減小不少沒必要要的空檢查,經過啓用可空引用類型,也讓我修復了一些本來代碼中缺乏的檢查,進一步加強了代碼的健壯性。rem

示例代碼能夠從 https://github.com/WeihanLi/SamplesInPractice/blob/master/NPOISample/NPOIExtensionSample.cs 獲取,能夠自行測試get

References

相關文章
相關標籤/搜索