国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

C#中,為什么在值類型后面加問號

2019-11-17 03:03:46
字體:
供稿:網(wǎng)友

C#中,為什么在值類型后面加問號

在C#中,聲明一個(gè)值類型或引用類型的變量,無論是否給這個(gè)變量賦初值,該變量都有默認(rèn)值:

比如聲明引用類型變量: string a,其等效于string a = null,string的默認(rèn)值為null。比如聲明值類型變量:int a, 其等效于int a = 0,int的默認(rèn)值為0。

為什么需要讓值類型可以為null?

來看需要讓值類型為null的場景:

數(shù)據(jù)庫中,通常值類型允許為null,比如int, decimal, DateTime類型允許為null,而如果C#中對應(yīng)的值類型不能為null,在保存數(shù)據(jù)到數(shù)據(jù)庫的時(shí)候就會造成數(shù)據(jù)類型的不一致。

又比如,在搜索的場景中,服務(wù)端聲明一個(gè)變量,用來接收來自客戶端的、某個(gè)字段的值,如果C#中不允許這個(gè)變量為null,但從客戶端傳來的字段值有可能為null(沒有選擇某個(gè)搜索條件),這樣也造成了前后端數(shù)據(jù)類型的不一致。

為了應(yīng)對這些場景,C#提供了允許讓值類型為null的語法。

允許值類型為null的寫法

DateTime? date = null; 等效于: Nullable<DateTime> date = null;int? a = null; 等效于:Nullable<int> a = null;

如何避免因值類型為null而拋出異常?

通過if...else語句

int result;if(a == null){    result = 0;}else{    result = (int)a;}

通過??

int result = a ?? 0;


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 多伦县| 吉木乃县| 富锦市| 唐河县| 德阳市| 云浮市| 根河市| 武汉市| 垦利县| 确山县| 镇康县| 克山县| 车险| 炉霍县| 三台县| 保定市| 衡东县| 汉沽区| 延安市| 探索| 呼和浩特市| 建始县| 石家庄市| 长兴县| 施甸县| 金昌市| 晋宁县| 琼海市| 满城县| 岗巴县| 肇庆市| 沁阳市| 温宿县| 偃师市| 巧家县| 伊吾县| 饶平县| 方山县| 河津市| 嘉义县| 竹溪县|