亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

將字符串標記為循環體內的常量

將字符串標記為循環體內的常量

C#
GCT1015 2023-06-25 13:31:38
我有一些帶有循環的代碼:while(someVariable){    string url = "https://<domain>/<page>/etc..";    var response = await _httpHandler.GetAsync(url);    // do something ...}我想阻止編譯器在每次循環迭代時創建新的字符串對象。最好的方法是什么 - 將 url 移到循環之外,或者簡單地將 is 標記為 const?(兩者之間有區別嗎?)
查看完整描述

2 回答

?
Cats萌萌

TA貢獻1805條經驗 獲得超9個贊

不用擔心。!編譯器不會創建新的引用,因為字符串池。

字符串內部池是一個表,其中包含對應用程序中以編程方式聲明或創建的每個唯一文字字符串的單個引用。公共語言運行時 (CLR) 使用實習池來最大限度地減少字符串存儲需求。因此,具有特定值的文字字符串實例在系統中僅存在一次。


查看完整回答
反對 回復 2023-06-25
?
DIEA

TA貢獻1820條經驗 獲得超2個贊

最簡單的方法是將字符串移到循環之外。如果編譯器在啟用優化時自動執行此操作,我不會感到驚訝。

無論哪種方式,字符串都會被放入字符串池中并重新使用。


查看完整回答
反對 回復 2023-06-25
  • 2 回答
  • 0 關注
  • 143 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號