C#中變量、常量的聲明和使用注意事項
一、?常量及其類型
常量是固定值,程序執(zhí)行期間不會改變。常量可以是任何基本數(shù)據(jù)類型,比如整數(shù)常量、浮點常量、字符常量或者字符串常量,還有枚舉常量。
常量可以被當(dāng)作常規(guī)的變量,只是它們的值在定義后不能被修改。
C#中的常量分為:整數(shù)常量、浮點常量、字符常量、字符串常量。
1. 整數(shù)常量
整數(shù)常量可以是十進制、八進制或十六進制的常量。前綴指定基數(shù):0x 或 0X 表示十六進制,0 表示八進制,沒有前綴則表示十進制。
整數(shù)常量也可以有后綴,可以是 U 和 L 的組合,其中,U 和 L 分別表示 unsigned 和 long。后綴可以是大寫或者小寫,多個后綴以任意順序進行組合。
2. 浮點常量
一個浮點常量是由整數(shù)部分、小數(shù)點、小數(shù)部分和指數(shù)部分組成。您可以使用小數(shù)形式或者指數(shù)形式來表示浮點常量。
使用小數(shù)形式表示時,必須包含小數(shù)點、指數(shù)或同時包含兩者。使用指數(shù)形式表示時,必須包含整數(shù)部分、小數(shù)部分或同時包含兩者。有符號的指數(shù)是用 e 或 E 表示的。
3. 字符常量
字符常量是括在單引號里,例如,'x',且可存儲在一個簡單的字符類型變量中。一個字符常量可以是一個普通字符(例如 'x')、一個轉(zhuǎn)義序列(例如 '\t')或者一個通用字符(例如 '\u02C0')。
在 C# 中有一些特定的字符,當(dāng)它們的前面帶有反斜杠時有特殊的意義,可用于表示換行符(\n)或制表符 tab(\t)。
4. 字符串常量
字符串常量是括在雙引號 "" 里,或者是括在 @"" 里。字符串常量包含的字符與字符常量相似,可以是:普通字符、轉(zhuǎn)義序列和通用字符。
使用字符串常量時,可以把一個很長的行拆成多個行,可以使用空格分隔各個部分。
注意使用@””表示的是逐字符,也就是其中的特殊字符都不需要使用轉(zhuǎn)義字符。
二、?常量的定義
常量是使用 const 關(guān)鍵字來定義的 。定義一個常量的語法如下:
const <data_type> <constant_name> = value;
1. 靜態(tài)常量(編譯時常量)const
在編譯時就確定了值,必須在聲明時就進行初始化且之后不能進行更改,可在類和方法中定義。定義方法如下:
const?double a=3.14;// 正確聲明常量的方法
const?int b; // 錯誤,沒有初始化
5. 動態(tài)常量(運行時常量)readonly
在運行時確定值,只能在聲明時或構(gòu)造函數(shù)中初始化,只能在類中定義。定義方法如下:
class Program
{
readonly?int a=1; // 聲明時初始化
readonly?int b; // 構(gòu)造函數(shù)中初始化
Program()
{
b=2;
}
static void Main()
{
}
}
在下面兩種情況下:
a、取值永久不變(比如圓周率、一天包含的小時數(shù)、地球的半徑等)。
b、對程序性能要求非??量?。
可以使用 const 常量,除此之外的其他情況都應(yīng)該優(yōu)先采用 readonly 常量。
三、?常量變量的命名規(guī)則
(1)帶有 private 私有訪問修飾符的常量要以駱駝命名法命名,即以下劃線開頭,第一個單詞的首字母小寫,余下單詞首字母大寫。
private const string _bookName = "新華字典";
(2)帶有 public 公共修飾符、protected 受保護修飾符等的常量要以帕斯卡命名法命名,即各個單詞首字母都要大寫。
public const int BookPrice = 10;