c中的const何readonly關鍵字含義和作用有什麼區

2021-03-22 03:06:48 字數 4264 閱讀 4960

1樓:匿名使用者

常數表示式是在編譯時可被完全計算的表示式。因此不能從一個變數中提取的值來初始化常量。

如果const int a = b+1;b是一個變數,顯然不能再編譯時就計算出結果,所以常量是不可以用變數來初始化的。

readonly 允許把一個欄位設定成常量,但可以執行一些運算,可以確定它的初始值。

因為readonly 是在計算時執行的,當然它可以用某些變數初始化。

readonly 是例項成員,所以不同的例項可以有不同的常量值,這使readonly更靈活。

readonly 關鍵字與 const 關鍵字不同。

1. const 欄位只能在該欄位的宣告中初始化。

readonly 欄位可以在宣告或建構函式中初始化。因此,根據所使用的建構函式,readonly 欄位可能具有不同的值。

2. const 欄位是編譯時常數,而 readonly 欄位可用於執行時常數。

3. const 預設就是靜態的,而 readonly 如果設定成靜態的就必須顯示宣告。

4.const 對於引用型別的常數,可能的值只能是 string 和 null。

readonly可以是任何型別

* 需要注意的一個問題是:

對於一個 readonly 的 reference 型別,只是被限定不能進行賦值(寫)操作而已。而對其成員的讀寫仍然是不受限制的。

public static readonly class1 my = new class1();…my.someproperty = 10; //正常

my = new class1(); //出錯,該物件是隻讀的

但是,如果上例中的 class1 不是一個 class 而是一個 struct,那麼後面的兩個語句就都會出錯。

static readonly:

2樓:弘航刁秋蓮

const

一個包含不能修改的值的變數。

readonly

允許把一個欄位設定成常量,但可以執行一些運算,可以確定它的初始值。

常數表示式是在編譯時可被完全計算的表示式。因此不能從一個變數中提取的值來初始化常量。

如果const

inta

=b+1;b是一個變數,顯然不能再編譯時就計算出結果,所以常量是不可以用變數來初始化的。

readonly

是在計算時執行的,當然它可以用某些變數初始化。

readonly

是例項成員,所以不同的例項可以有不同的常量值,這使readonly更靈活。

readonly

關鍵字與

const

關鍵字不同。

1.const

欄位只能在該欄位的宣告中初始化。

readonly

欄位可以在宣告或建構函式中初始化。因此,根據所使用的建構函式,readonly

欄位可能具有不同的值。

2.const

欄位是編譯時常數,而

readonly

欄位可用於執行時常數。

3.const

預設就是靜態的,而

readonly

如果設定成靜態的就必須顯示宣告。

4.const

對於引用型別的常數,可能的值只能是

string

和null。

readonly可以是任何型別

總結const只能在初期就使用常量初始化好。對於每一次編譯後的結果,const的值是固定的,而readonly的值是可以在執行的時候才確定值的~~

c#中的const何readonly關鍵字含義和作用有什麼區別?

3樓:匿名使用者

const 一個包含不能修改的值的變數。

readonly 允許把一個欄位設定成常量,但可以執行一些運算,可以確定它的初始值。

常數表示式是在編譯時可被完全計算的表示式。因此不能從一個變數中提取的值來初始化常量。

如果 const int a = b+1;b是一個變數,顯然不能再編譯時就計算出結果,所以常量是不可以用變數來初始化的。

readonly 是在計算時執行的,當然它可以用某些變數初始化。

readonly 是例項成員,所以不同的例項可以有不同的常量值,這使readonly更靈活。

readonly 關鍵字與 const 關鍵字不同。

1. const 欄位只能在該欄位的宣告中初始化。

readonly 欄位可以在宣告或建構函式中初始化。因此,根據所使用的建構函式,readonly 欄位可能具有不同的值。

2. const 欄位是編譯時常數,而 readonly 欄位可用於執行時常數。

3. const 預設就是靜態的,而 readonly 如果設定成靜態的就必須顯示宣告。

4.const 對於引用型別的常數,可能的值只能是 string 和 null。

readonly可以是任何型別

總結const只能在初期就使用常量初始化好。對於每一次編譯後的結果,const的值是固定的,而readonly的值是可以在執行的時候才確定值的~~

4樓:匿名使用者

const 關鍵字用於修改欄位或區域性變數的宣告。 它指定欄位或區域性變數的值是常數,不能被修改。不允許在常數宣告中使用 static 修飾符。 const int x = 0;

readonly 關鍵字是可以在欄位上使用的修飾符。當欄位宣告包括 readonly 修飾符時,該宣告引入的欄位賦值只能作為宣告的一部分出現,或者出現在同一類的建構函式中

readonly 關鍵字與 const 關鍵字不同。const 欄位只能在該欄位的宣告中初始化。readonly 欄位可以在宣告或建構函式中初始化。

因此,根據所使用的建構函式,readonly 欄位可能具有不同的值。另外,const 欄位為編譯時常數,而 readonly 欄位可用於執行時常數

c#中const與readonly區別

5樓:匿名使用者

readonly 關鍵字與 const 關鍵字不同。 const 欄位只能在該欄位的宣告中初始化。 readonly 欄位可以在宣告或建構函式中初始化。

因此,根據所使用的建構函式,readonly 欄位可能具有不同的值。 另外,const 欄位為編譯時常數,而 readonly 欄位可用於執行時常數

6樓:續米道閒靜

const

的概念就是一個包含不能修改的值的變數。

常數表示式是在編譯時可被完全計算的表示式。因此不能從一個變數中提取的值來初始化常量。

如果const

inta

=b+1;b是一個變數,顯然不能再編譯時就計算出結果,所以常量是不可以用變數來初始化的。

readonly

允許把一個欄位設定成常量,但可以執行一些運算,可以確定它的初始值。

因為readonly

是在計算時執行的,當然它可以用某些變數初始化。

readonly

是例項成員,所以不同的例項可以有不同的常量值,這使readonly更靈活。

readonly

關鍵字與

const

關鍵字不同。

1.const

欄位只能在該欄位的宣告中初始化。

readonly

欄位可以在宣告或建構函式中初始化。因此,根據所使用的建構函式,readonly

欄位可能具有不同的值。

2.const

欄位是編譯時常數,而

readonly

欄位可用於執行時常數。

3.const

預設就是靜態的,而

readonly

如果設定成靜態的就必須顯示宣告。

4.const

對於引用型別的常數,可能的值只能是

string

和null。

readonly可以是任何型別

總結const只能在初期就使用常量初始化好。對於每一次編譯後的結果,const的值是固定的,而readonly的值是可以在執行的時候才確定值的~~

c#怎麼用const

7樓:匿名使用者

//const就是宣告常量用的,相當於 static readonly,但又有些區別

public class test1

;public void showservername()}好了,還有不理解的請追問

8樓:匿名使用者

格式:const 資料型別 常量名 = 賦值;

例:const int a = 1;

C或C中define和const的區別

define 就是一個巨集替換過程,不用開闢記憶體空間 const 定義了變數 要佔記憶體空間 1 編譯器處理方式不同 define巨集是在預處理階段。const常量是編譯執行階段使用。2 型別和安全檢查不同 define巨集沒有型別,不做任何型別檢查,僅僅是。const常量有具體的型別,在編譯階段...

C中的const形參,C const的用法

只有c 才會有這個疑問,我也是 int add const int aa 其實不用ref const,比如string,你就直接ref string就可以了,而定義這個string的時候,前面加上const就ok了。我想這就是樓主想要的效果吧。汗,你不用關鍵字ref直接傳遞一個值型別變數進去 就只是...

c和c 中const用法具體的區別是什麼

c中的const,功能比較單一,較容易理解 作用 被修飾的內容不可更改。使用場合 修飾變數,函式引數,返回值等。c 中應用場合要豐富的多 特點 是執行時const,因此不能取代 define用於成為陣列長度等需要編譯時常量的情況。同時因為是執行時const,可以只定義而不初始化,而在執行時初始化。如...