C介面中怎麼定義常量啊,如何 在 C 中定義常量

2021-03-27 13:26:44 字數 3216 閱讀 6034

1樓:魔淚無痕

const 是定義常量的關鍵字,定義常量和定義變數唯一的不同就是多加一個const。

如,int i=1;//定義並賦值一個變數const int i=5;//定義一個常量並賦值。

定義常量時必須同時對常量賦值,但定義變數時可不用賦值。

2樓:匿名使用者

介面,不可以定義欄位!

3樓:匿名使用者

主要是const標識 例:const int max_value = 10;

4樓:

private readonly const string str="123"; 宣告一個值為123的常量

如何:在 c#中定義常量

5樓:匿名使用者

常量使用 const 修飾符進行宣告。

只有 c# 內建型別(system.object 除外)可以宣告為 const。

比如下面這樣

class calendar1

具體參考msdn文件

6樓:匿名使用者

const int aa=10;

7樓:匿名使用者

使用const關鍵字:如public const int max_value = 10;

c# 中如何宣告一個靜態常量?

8樓:

常量隱含著就是靜態的,所以,不用特別說明 static.

**改為這樣:

class program

{public const string success = "1";

.........

9樓:匿名使用者

c#擁有兩種不同的常量:靜態常量(***pile-time constants)和動態常量(runtime constants)。它們有不同的特性,錯誤的使用不僅會損失效率,還可能造成錯誤。

相比之下,靜態常量在速度上會稍稍快一些,但是靈活性卻比動態常量差很多。

//靜態常量(隱式是靜態的)

public const int ***piletimeconstant = 1;

//動態常量

public static readonly runtimeconstant = 1;

靜態常量在編譯時會將其替換為所對應的值,也就是說下面這2句話通過編譯器編譯後產生的il是一樣的。

//通過編譯後二者會被翻譯成相同的中間語言

int mynum = ***piletimeconstant;

int mynum = 1;

動態常量的值是在執行時獲得的。il中將其標為只讀常量,而不是用常量的值代替。

靜態常量只能被宣告為簡單的資料型別(內建的int和浮點型)、列舉或字串。下面的程式段是通不過編譯的。你不能用new關鍵字初始化一個靜態常量,即便是對一個值型別來說。

//這樣是錯誤的

public const datetime mydatetime = new datetime(2006,9,1,0,0,0);

//這樣是可以的

public static readonly datetime mydatetime = new datetime(2006,9,1,0,0,0);

只讀資料也是常量的一種,它們不能在構造器初始化之後被修改。但是它同靜態常量不同,它的值是在執行時才被指派的,因此就會獲得更大的靈活性。動態常量可以是任意的資料型別。

二者最大的差別在於:靜態常量在編譯時會將其換為對應的值,這就意味著對於不同的程式集來說,當你改變靜態常量的時候需要將其重新編譯,否則常量的值不會發生變化,可能引發潛在的問題,而動態常量就不會有這種情況。

用const定義的常量(隱式是靜態的),需要像訪問靜態成員那樣去訪問const定義的常量,而用物件的成員方式去訪問會出編譯錯誤。 宣告的同時要設定常量值。

從另一方面來說,如果你的確要宣告一些從不改變且處處唯一的常量,例如鉤子函式setwindowshookex的idhook引數或序列化時的版本等,就應該使用靜態常量。但是用到這樣的常量的機會不多。一般來說我們應該使用靈活性更高的動態常量。

靜態常量 動態常量

記憶體消耗 無 因為要儲存常量 有消耗

初始化 很少的簡單型別, 任意型別,可以在類建構函式中賦值

不能new,必須在

宣告同時賦值

何時發揮作用 編譯時進行替換 相當於類中的資料成員

10樓:『戀愛領域

你申明的這個靜態變數在哪申明的?必須在類裡!

11樓:匿名使用者

const就是靜態常量

c# 裡怎樣定義一個常量陣列?

12樓:匿名使用者

不要拘泥於 const 關鍵字,readonly 關鍵字表示執行時常數

private readonly string m_strposition = ;

看你這個結構下面這種定義更合適

using system.drawing;

private readonly point position = new point ;

13樓:匿名使用者

我學的也不長

應該可以直接寫成陣列!

比如string car = new string[3,3]

14樓:匿名使用者

樓上說的是2維陣列

斑竹說的是定義成一維的話應該是

string car = new string[3]car[0]=3.1;

car[1]=1.5;

car[2]=4.1;

c#裡如何定義常量集合

15樓:陽光的雷咩咩

16樓:匿名使用者

在程式裡用dictionary,如果用作外部檔案可以用ini或xml都可以

在c中如何使用和定義變數,c 中可以用介面直接定義一個變數嗎?為什麼?

我補充說點兒實際的吧!例項變數在類的內部定義,不屬於方法,會自動初始化。靜態的例項變數可以在類中任何一個方法 包括靜態的和非靜態的 中訪問,非靜態的例項變數可以在類中任何非靜態的方法中訪問。區域性變數是指在方法內部定義的變數,包括形式引數。具有一定的作用範圍,即外層的大括號,出了大括號便不能使用。靜...

c如何在控制檯程式中輸入字元,C如何在控制檯程式中輸入字元?

示例 class program console.readkey true static void test else class program console.readkey true static void test else while true bool bisnumber false i...

C語言編寫函式,如何在C語言中定義一個函式?

這個hanshu 用來從20個隨機數中推匯出15個不重複的隨機數 正數 演算法邏輯有問題。看這一句 a i a i 1 想做什麼?它在內迴圈裡 迭代數是j不是i 當前後兩數相同時它總是把後一個數賦值給前一個數,猜想你大概是想不斷的把後面的數賦給i位置的數然後做相等測試,而這裡的i就沒有動 那個con...