關于c#中的const和readonly想必使用c# .net開發的朋友都很了解吧?總結一下const和readonly也就這么幾條吧:
const和readonly的值一旦初始化則都不再可以改寫;
const只能在聲明時初始化;readonly既可以在聲明時初始化也可以在構造器中初始化;
const隱含static,不可以再寫static const;readonly則不默認static,如需要可以寫static readonly;
const是編譯期靜態解析的常量(因此其表達式必須在編譯時就可以求值);readonly則是運行期動態解析的常量;
const既可用來修飾類中的成員,也可修飾函數體內的局部變量;readonly只可以用于修飾類中的成員
const 只能修飾內建類型(string除外),而readonly可以修飾引用類型。(新增)
前面幾條也沒什么可說的,不過關于這第4條,里面還是有些文章可做的。試試下面的例子,看看是否與你所想一致吧!
顯示全部
0. 常量與靜態只讀變量類庫(文件名consts.cs)
public class consts
{
? public const string const = "const";
? public static readonly string readonly = "readonly";
}
執行csc /t:library consts.cs編譯輸出consts.dll。
1. 客戶端(文件名quiz.cs,編譯選項/r:consts.dll)
public class quiz
{
? public static void main()
? {
??? system.console.writeline(consts.const);
????system.console.writeline(consts.readonly);
? }
}
執行csc quiz.cs編譯輸出quiz.exe.
2. 執行quiz.exe,輸出如下:
const
readonly
3. 現在把consts.cs里面的兩個常量的值都換成大寫并重新編譯consts.cs(quiz.exe不變,仍是引用consts.dll)。再執行quiz.exe,輸出會是……什么呢?(const readonly)
|
新聞熱點
疑難解答
圖片精選