日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

缕一缕c#可null类型

發(fā)布時間:2023/12/4 C# 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 缕一缕c#可null类型 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在古時候,引用類型是的默認值就是null,值類型是不可以賦值null的,所以那時候,“未將對象引用到實例”這個錯誤,是引用類型的。后來,值類型也可以賦值null了,只要在值類型變量定義的時候,加個?就可以,比如 int? i=null。到了c#8.0,引用類型又引入了可null引用類型,這里的意思不是引用類型不可以賦值null了,而是當使用可null引用類型時,不會報“未將對象引用到實例”的錯誤了。

非null引用類型demo

可null引用類型demo

.net6到來時,每個項目默認是支持可null引用類型的,在.csproj中有一個配置:<Nullable>enable</Nullable>,這樣引入的好處是顯而易見的,就會報空引用異常,但可能對于問題的排查帶來一定的難度,不過換個角度,如果我們能按業(yè)務(wù)要求有效的驗證非空,讓不該空的有驗證,讓可空的不報錯,從而來提升服務(wù)質(zhì)量,豈不更好。

對于一些集合數(shù)組類型的使用,也有所區(qū)別,用for循環(huán)就能有效處理空引用的異常。

using static System.Console;Order? order = null; PrintOrder(order);static void PrintOrder(Order? order) {WriteLine($"OrderNo:{order?.OrderNo},Amount:{order?.Amount},OrderTime:{order?.Amount}");//這還是會發(fā)空引用異常//foreach (var detail in order?.Details)//{// WriteLine($"GoodsID:{detail.GoodsID},Quantity:{detail.Quantity},Price:{detail.Price}");//}//這樣就不會引發(fā)空引用異常for (int i = 0; i < order?.Details?.Count; i++){var detail = order.Details[i];WriteLine($"GoodsID:{detail.GoodsID},Quantity:{detail.Quantity},Price:{detail.Price}");} }public class Order {public string? OrderNo { get; set; }public decimal Amount { get; set; }public DateTime OrderTime { get; set; }public List<OrderDetail>? Details { get; set; } }public class OrderDetail {public string? GoodsID { get; set; }public int Quantity { get; set; }public decimal Price { get; set; } }

總結(jié)

以上是生活随笔為你收集整理的缕一缕c#可null类型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。