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

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

為什么 Console.WriteLine(i + “”)

為什么 Console.WriteLine(i + “”)

C#
呼喚遠(yuǎn)方 2022-08-20 17:22:06
我測試了 、 和 的速度。( 曾是一個(gè) )結(jié)果如下:i.ToString()i + ""Console.WriteLine(i+"")Console.WriteLine(i)iinti.ToString()(149 毫秒)比 (202 毫秒) 快。i + ""但是當(dāng)我使用時(shí)(743毫秒)比(927毫秒,根據(jù)TextWriter源Consolor.WriteLine內(nèi)部調(diào)用)快得多。Console.WriteLineConsole.WriteLine(i + "")Console.WriteLine(i)ToString()現(xiàn)在我的問題是:為什么與?i + ""Console.WriteLine()筆記:我對非控制臺內(nèi)容使用了 1,000,000 次迭代,為控制臺測試使用了 1,000 次迭代。我使用 .NET Framework 4.7.1該代碼是使用 Visual Studio 2017(版本 15.9.4)中的調(diào)試配置編譯的?!鞍l(fā)布”給出了類似的結(jié)果。項(xiàng)目類型為控制臺應(yīng)用程序。代碼可作為 GitHub Gist 提供
查看完整描述

1 回答

?
白豬掌柜的

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

當(dāng)我查看源代碼時(shí),我看到了這個(gè):


i + "" = String.Concat(object)哪個(gè)叫聲 還有一個(gè).所以它更慢。obj.ToString()String.Concat(object)


1st way) 使用 Console.WriteLine,它很簡單:


    public static void WriteLine(String value)

    {

        Out.WriteLine(value);

    }

https://referencesource.microsoft.com/#mscorlib/system/console.cs,5ac7c4fda643413b


在內(nèi)部,它創(chuàng)建 1 個(gè)值為 ' \r\n' 的緩沖區(qū),并且只調(diào)用一次。.Write(char[], int, int)


第二種方式)當(dāng)你用int調(diào)用它時(shí),它是不同的。


    public virtual void WriteLine(int value) {

        Write(value);

        WriteLine();

    }

https://referencesource.microsoft.com/#mscorlib/system/console.cs,82d5745bf4a5ecc6


這樣它就會(huì)調(diào)用兩次。這可能是那種放緩,但我不能確定。它只是提示,問題可能在哪里。Write(char[], int, int)


編輯:


此外,第二種方式,它調(diào)用以獲取數(shù)字的字符串表示形式,這是另一個(gè)開銷,可以稍微減慢它的速度,因?yàn)樗看味伎梢垣@取該提供程序的實(shí)例。https://referencesource.microsoft.com/#mscorlib/system/globalization/numberformatinfo.cs,9c4284b5db21c23aint.ToString(IFormatProvider)


查看完整回答
反對 回復(fù) 2022-08-20
  • 1 回答
  • 0 關(guān)注
  • 171 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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