const
1. 在編譯期間解析的常量 2.
必須在宣告就初始化 3.
既可用來修飾類中的成員,也可修飾函式體內的區域性變數。
static readonly
1. 在執行期間解析的常量, 2.
既可以在宣告時初始化也可以在構造器中初始化。
3. 只可以用於修飾類中的成員
例子: 1.
static readonly
myclass myclass =
newmyclass(); //
必須使用
static readonly,
因為new
需要在執行時確定 //
而const
只能必須在編譯時就確定
2. static readonly
a = b * 20;
static readonly
b = 10; //
可以使用
static readonly,
顯然可以在執行時確定語句 //
也可以使用
const //
const a = b * 20;
//const b = 10; //
,編譯器會在編譯時候,就把
b編譯為10,
a編譯為
200,而不是在執行時再計算
b * 20 2.
有乙個專案,有乙個
myint
的屬性,定義如下:
public
class
myclass
另乙個專案中引用該屬性
public
class
anotherclass
編譯執行程式,i
= 5.
這是當然的。
但是如果我們改變
myclass
中的myint
的值,改為
6.然後編譯
myclass
所在的專案,生成
dll。
再執行程式
anotherclass
,發現i
還是= 5
,而不是
6!,為什麼?因為在
anotherclass中,i
已經被定義為
5而不是執行時再去取
dll的值,所以說
const
是編譯時就確定了!!!
const物件和const函式
當乙個類的函式的參數列不同時,能過載函式,當函式的const性不同時,也能過載函式。如下所示 include a.h 定義了ca類 class cbigclass const ca getvalue const ca getvalue private ca m value 客戶端 如下 ca ca ...
頂層const和底層const
頂層const 本身是乙個常量 底層const 所指的物件是乙個常量 int const p1 i const修飾p1,p1本身是乙個const,所以這個const是頂層const const int ci 42 const修飾ci,ci本身是乙個const,頂層 const int p2 ci c...
頂層const和底層const
1.頂層 const 與底層 const概念 指標本身是乙個物件,因為,指標實際對應著記憶體單元的一段儲存空間,然而,指標所指向的也是乙個資料物件,因此,指標是乙個常量與指標所指向的是乙個常量是兩個完全不同的概念,頂層 const表示的是指標本身是乙個常量,底層const 表示的是指標所指的物件是乙...