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

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

什么更快,打開字符串或其他類型?

什么更快,打開字符串或其他類型?

大話西游666 2019-12-21 11:05:55
可以說我可以選擇根據(jù)字符串比較來確定要采用的代碼路徑,也可以根據(jù)類型來確定:哪個更快,為什么?switch(childNode.Name){    case "Bob":      break;    case "Jill":      break;    case "Marko":      break;}if(childNode is Bob){}elseif(childNode is Jill){}else if(childNode is Marko){}更新:我問這的主要原因是因為switch語句對于具體情況視作具體問題。例如,它不允許您使用變量,而只能使用常量,這些常量將被移至主程序集。我認(rèn)為它有此限制是因為它正在執(zhí)行一些時髦的操作。如果僅翻譯為elseifs(如一位發(fā)布者所評論),那么為什么在case語句中不允許變量?警告:我正在優(yōu)化。這種方法被稱為許多在應(yīng)用程序的緩慢一部分倍。
查看完整描述

3 回答

?
泛舟湖上清波郎朗

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

首先,您要比較蘋果和橙子。您首先需要比較啟用類型與啟用字符串,然后比較類型與啟用字符串,然后比較獲勝者。


其次,這是OO設(shè)計的目的。在支持OO的語言中,打開類型(任何類型)是一種代碼味道,表明設(shè)計不良。解決方案是使用抽象或虛擬方法(或類似的構(gòu)造,取決于您的語言)從通用基礎(chǔ)中得出


例如。


class Node

{

    public virtual void Action()

    {

        // Perform default action

    }

}


class Bob : Node

{

    public override void Action()

    {

        // Perform action for Bill

    }

}


class Jill : Node

{

    public override void Action()

    {

        // Perform action for Jill

    }

}

然后,您無需調(diào)用switch語句,而只需調(diào)用childNode.Action()


查看完整回答
反對 回復(fù) 2019-12-21
  • 3 回答
  • 0 關(guān)注
  • 750 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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