[英]What is the difference between the two definitions?
string a = "var";
string b = new string("var");
我還有一個額外的問題,如何在不分配堆空間的情況下訪問第一個定義中的字符串類型變量?
第一個編譯; 第二個沒有,產生 CS1503 錯誤:
參數 1:無法從 'string' 轉換為 'char*'
這是因為String
class 沒有接受string
參數的構造函數。
第一個將文字分配給字符串變量。 第二個將字符串隱式轉換為ReadOnlySpan<char>
,然后調用接受ReadOnlySpan<char>
實例的String
構造函數,該實例將字符從原始字符串復制到新字符串,從而使 memory 的使用加倍。
至於您的第二個問題,由於String
是一種引用類型,因此您不能在不分配堆空間的情況下分配實例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.