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

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

使用條件?:(三元)運(yùn)算符的好處

使用條件?:(三元)運(yùn)算符的好處

C#
瀟瀟雨雨 2019-07-03 09:57:06
使用條件?:(三元)運(yùn)算符的好處與標(biāo)準(zhǔn)的if-etc語(yǔ)句相比,?:操作符的優(yōu)缺點(diǎn)是什么?顯而易見的是:有條件的?:運(yùn)算符在處理直接值比較和賦值時(shí)更短、更簡(jiǎn)潔似乎不像if/Else構(gòu)造那樣靈活。標(biāo)準(zhǔn)IF/Else可以應(yīng)用于更多情況(例如函數(shù)調(diào)用)。往往是不必要的長(zhǎng)根據(jù)語(yǔ)句的不同,每個(gè)語(yǔ)句的可讀性似乎各不相同。在第一次接觸到?:操作符之后,我花了一段時(shí)間來(lái)理解它是如何工作的??紤]到我與許多非程序員一起工作,您會(huì)建議在可能的情況下使用它嗎?還是堅(jiān)持使用if/Else?
查看完整描述

3 回答

?
LEATH

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

我基本上建議,只有在結(jié)果語(yǔ)句非常短并且相對(duì)于if/etc等效時(shí),簡(jiǎn)潔性顯著增加而不犧牲可讀性時(shí),才建議使用它。

很好的例子:

int result = Check() ? 1 : 0;

壞例子:

int result = FirstCheck() ? 1 : SecondCheck() ? 1 : ThirdCheck() ? 1 : 0;


查看完整回答
反對(duì) 回復(fù) 2019-07-03
?
萬(wàn)千封印

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

其他答案幾乎涵蓋了這一點(diǎn),但“這是一個(gè)表達(dá)”并不能真正解釋為什么這是如此有用的.

在C+和C#等語(yǔ)言中,可以使用它們定義本地只讀字段(在方法體中)。這在常規(guī)if/list語(yǔ)句中是不可能的,因?yàn)楸仨氃谠撜Z(yǔ)句中分配只讀字段的值:

readonly int speed = (shiftKeyDown) ? 10 : 1;

與以下不同:

readonly int speed;  if (shifKeyDown)  
    speed = 10;    // error - can't assign to a readonlyelse  
    speed = 1;     // error

以類似的方式,您可以在其他代碼中嵌入一個(gè)三級(jí)表達(dá)式。除了使源代碼更緊湊(在某些情況下,它的可讀性更強(qiáng))之外,它還可以使生成的機(jī)器代碼更加緊湊和高效:

MoveCar((shiftKeyDown) ? 10 : 1);

.可能生成的代碼比必須調(diào)用同一方法兩次更少:

if (shiftKeyDown)
    MoveCar(10);else
    MoveCar(1);

當(dāng)然,它也是一種更方便、更簡(jiǎn)潔的形式(更少的輸入、更少的重復(fù),并且如果必須在if/etc中復(fù)制代碼塊,則可以減少出錯(cuò)的可能性)。在這種干凈的“常見模式”情況下:

object thing = (reference == null) ? null : reference.Thing;

..閱讀/解析/理解(一旦你習(xí)慣了)要比冗長(zhǎng)的if/etc更快,所以它可以幫助你更快地“摸索”代碼。

當(dāng)然,僅僅是因?yàn)?/trans>有用并不意味著這是最好的使用在每一種情況下。我建議只在含義明確(或更清楚)的短代碼中使用?:-如果您在更復(fù)雜的代碼中使用它,或者在彼此之間嵌套三元操作符,則會(huì)使代碼很難讀懂。


查看完整回答
反對(duì) 回復(fù) 2019-07-03
?
墨色風(fēng)雨

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

當(dāng)我有很多重復(fù)的代碼時(shí),我通常會(huì)選擇一個(gè)三元操作符,否則。

if (a > 0)
    answer = compute(a, b, c, d, e);else
    answer = compute(-a, b, c, d, e);

使用三元操作符,可以通過(guò)以下方法實(shí)現(xiàn)這一點(diǎn)。

answer = compute(a > 0 ? a : -a, b, c, d, e);


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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