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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Nullable類(lèi)型問(wèn)題?:條件運(yùn)算符

Nullable類(lèi)型問(wèn)題?:條件運(yùn)算符

C#
有只小跳蛙 2019-09-20 17:00:57
有人可以解釋為什么這在C#.NET 2.0中有效:    Nullable<DateTime> foo;    if (true)        foo = null;    else        foo = new DateTime(0);......但這不是:    Nullable<DateTime> foo;    foo = true ? null : new DateTime(0);后一種形式給我一個(gè)編譯錯(cuò)誤“無(wú)法確定條件表達(dá)式的類(lèi)型,因?yàn)?#39;<null>'和'System.DateTime'之間沒(méi)有隱式轉(zhuǎn)換。”并不是說(shuō)我不能使用前者,但第二種風(fēng)格與我的其余代碼更加一致。
查看完整描述

3 回答

?
拉風(fēng)的咖菲貓

TA貢獻(xiàn)1995條經(jīng)驗(yàn) 獲得超2個(gè)贊

這個(gè)問(wèn)題已經(jīng)被問(wèn)過(guò)很多次了。編譯器告訴你它不知道如何轉(zhuǎn)換null為DateTime。


解決方案很簡(jiǎn)單:


DateTime? foo;

foo = true ? (DateTime?)null : new DateTime(0);

請(qǐng)注意,Nullable<DateTime>可以寫(xiě)入DateTime?,這將節(jié)省您一堆打字。


查看完整回答
反對(duì) 回復(fù) 2019-09-20
?
翻閱古今

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超5個(gè)贊

FYI(Offtopic,但很漂亮并且與可空類(lèi)型有關(guān))我們有一個(gè)方便的運(yùn)算符,僅用于可空類(lèi)型,稱(chēng)為空合并運(yùn)算符


??

像這樣使用:


// Left hand is the nullable type, righthand is default if the type is null.

Nullable<DateTime> foo;

DateTime value = foo ?? new DateTime(0);


查看完整回答
反對(duì) 回復(fù) 2019-09-20
?
慕哥6287543

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超10個(gè)贊

類(lèi)似于接受的另一個(gè)解決方案是使用C#的default關(guān)鍵字。雖然使用泛型定義,但它實(shí)際上適用于任何類(lèi)型。


應(yīng)用于OP問(wèn)題的示例用法:


Nullable<DateTime> foo;

foo = true ? default(DateTime) : new DateTime(0);

使用當(dāng)前接受的答案的示例用法:


DateTime? foo;

foo = true ? default(DateTime) : new DateTime(0);

此外,通過(guò)使用default,您不需要指定變量nullable,以便為其賦值null。編譯器將自動(dòng)分配特定變量類(lèi)型的默認(rèn)值,不會(huì)遇到任何錯(cuò)誤。例:


DateTime foo;

foo = true ? default(DateTime) : new DateTime(0);


查看完整回答
反對(duì) 回復(fù) 2019-09-20
  • 3 回答
  • 0 關(guān)注
  • 333 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號(hào)

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