3 回答

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊
我認(rèn)為這里有很多混亂和不良反應(yīng)。
首先,const字段是static成員(不是實(shí)例成員)。
檢查C#語(yǔ)言規(guī)范的10.4常量。
即使常量被認(rèn)為是靜態(tài)成員,常量聲明也不需要也不允許使用靜態(tài)修飾符。
如果public const成員是靜態(tài)的,則不能認(rèn)為常量會(huì)創(chuàng)建一個(gè)新的Object。
鑒于此,以下代碼行在創(chuàng)建新Object方面的作用完全相同。
public static readonly string Empty = "";
public const string Empty = "";
這是Microsoft的注釋?zhuān)忉屃?之間的區(qū)別:
readonly關(guān)鍵字與const關(guān)鍵字不同。const字段只能在該字段的聲明中初始化。只讀字段可以在聲明中或在構(gòu)造函數(shù)中初始化。因此,取決于使用的構(gòu)造函數(shù),只讀字段可以具有不同的值。同樣,雖然const字段是編譯時(shí)常量,但readonly字段可用于運(yùn)行時(shí)常量,...
因此,我發(fā)現(xiàn)唯一合理的答案是杰夫·耶茨(Jeff Yates)。
- 3 回答
- 0 關(guān)注
- 537 瀏覽
添加回答
舉報(bào)