第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C# 中判斷 bool? 是否為 true 的正確姿勢

C# 中判斷 bool? 是否為 true 的正確姿勢

C#
一只名叫tom的貓 2018-08-07 07:10:07
請問 C# 中判斷可空布爾類型變量值的正確姿勢是什么?如果直接判斷( bool? isOk; if (isOk) ; )會出現(xiàn)下面的錯誤提示:Cannot implicitly convert type 'bool?' to 'bool'
查看完整描述

1 回答

?
暮色呼如

TA貢獻1853條經(jīng)驗 獲得超9個贊

bool? success = null;if(success.GetValueOrDefault()){    //TODO: do what you want.}

原因:其實翻看  Nullable<T> 的源碼就應(yīng)該知道,T 的約束是 struct(其實這應(yīng)該算常識),對應(yīng)的當(dāng)類型為 Nullable<T> 的變量被“賦值”為null時, GetValueOrDefault() 返回的值實際上 等于  default(T) ,原因是  bool? success = null; 實際上對應(yīng)的代碼是  bool? success = new Nullable<bool>();//所有結(jié)構(gòu)都有一個默認(rèn)無參數(shù)的構(gòu)造函數(shù)。 (編譯器的功勞哦)。

當(dāng)  bool? success =  后面跟的是一個編譯時無法確定是否為  null 的表達式時,編譯器會生成一個 if else 語句,判斷表達式運行的值,如果為 null 跟上面的一樣,調(diào)用默認(rèn)無參數(shù)的構(gòu)造函數(shù),如果不為 null,則調(diào)用  public Nullable(T value) 有參構(gòu)造函數(shù)。


查看完整回答
反對 回復(fù) 2018-08-23
  • 1 回答
  • 0 關(guān)注
  • 2281 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號