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

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

為什么在C#中經(jīng)??吹?ldquo;NULL!=變量”而不是“變量!=NULL”?

為什么在C#中經(jīng)??吹?ldquo;NULL!=變量”而不是“變量!=NULL”?

C#
猛跑小豬 2019-10-22 13:12:57
為什么在C#中經(jīng)??吹健癗ULL!=變量”而不是“變量!=NULL”?在C#中,對于你陳述條件的順序,過剩速度有什么不同嗎?if (null != variable) ...if (variable != null) ...自從最近,我經(jīng)常看到第一個(gè),它引起了我的注意,因?yàn)槲乙呀?jīng)習(xí)慣了第二個(gè)。如果沒有區(qū)別,第一個(gè)有什么好處呢?
查看完整描述

3 回答

?
慕桂英4014372

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


在C語言中,如果您使用了一個(gè)糟糕的編譯器或者沒有足夠高的警告,這將在沒有任何警告的情況下編譯(而且確實(shí)是法律代碼):

// Probably wrongif (x = 5)

你可能是說

if (x == 5)

您可以在C中通過以下操作來解決這個(gè)問題:

if (5 == x)

這里的錯(cuò)誤將導(dǎo)致無效的代碼。

現(xiàn)在,在C#中,這都是一派胡言。除非您正在比較兩個(gè)布爾值(這是很少見的,IME),否則您可以編寫更具可讀性的代碼,作為“if”語句,首先需要一個(gè)布爾表達(dá)式,以及x=5“是Int32,不是Boolean.

我建議,如果你在同事的代碼中看到了這一點(diǎn),你就會用現(xiàn)代語言的方式教育他們,并建議他們在將來寫出更自然的形式。



查看完整回答
反對 回復(fù) 2019-10-23
?
千萬里不及你

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

有一個(gè)很好的理由首先使用NULL:if(null == myDuck)

如果你class Duck覆蓋==接線員if(myDuck == null)可以進(jìn)入無限循環(huán)。

使用null首先使用默認(rèn)的相等比較器,并實(shí)際執(zhí)行您想要的操作。

(我聽說你最終習(xí)慣了閱讀以這種方式編寫的代碼-我只是還沒有經(jīng)歷過這種轉(zhuǎn)換)。

以下是一個(gè)例子:

public class myDuck{
    public int quacks;
    static override bool operator ==(myDuck a, myDuck b)
    {
        // these will overflow the stack - because the a==null reenters this function from the top again
        if (a == null && b == null)
            return true;
        if (a == null || b == null)
            return false;

        // these wont loop
        if (null == a && null == b)
            return true;
        if (null == a || null == b)
            return false;
        return a.quacks == b.quacks; // this goes to the integer comparison
    }}



查看完整回答
反對 回復(fù) 2019-10-23
?
慕勒3428872

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

我想這是一個(gè)轉(zhuǎn)換語言的C程序員。

在C語言中,您可以編寫以下內(nèi)容:

int i = 0;if (i = 1){
    ...}

注意,這里使用了一個(gè)等號,這意味著代碼將把1賦值給變量i,然后返回1(賦值是表達(dá)式),在if-語句中使用1,這將作為true處理。換句話說,上面的是一個(gè)bug。

然而,在C#中,這是不可能的。事實(shí)上,兩者并無分別。



查看完整回答
反對 回復(fù) 2019-10-23
  • 3 回答
  • 0 關(guān)注
  • 422 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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