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

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

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

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

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

3 回答

?
慕桂英4014372

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


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

// Probably wrongif (x = 5)

你可能是說

if (x == 5)

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

if (5 == x)

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

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

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



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

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

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

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

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

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

以下是一個例子:

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貢獻1848條經(jīng)驗 獲得超6個贊

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

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

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

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

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



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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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