C# 常量
常量是固定值,程式執行期間不會改變。常量可以是任何基本資料型別,比如整數常量、浮點常量、字元常量或者字串常量,還有列舉常量。
常量可以被當作常規的變數,只是它們的值在定義後不能被修改。
整數常量
整數常量可以是十進位制、八進位制或十六進位制的常量。字首指定基數:0x 或 0X 表示十六進位制,0 表示八進位制,沒有字首則表示十進位制。
整數常量也可以有字尾,可以是 U 和 L 的組合,其中,U 和 L 分別表示 unsigned 和 long。字尾可以是大寫或者小寫,多個字尾以任意順序進行組合。
這裡有一些整數常量的例項:
212 /* 合法 */
215u /* 合法 */
0xFeeL /* 合法 */
078 /* 非法:8 不是一個八進位制數字 */
032UU /* 非法:不能重複字尾 */
以下是各種型別的整數常量的例項:
85 /* 十進位制 */
0213 /* 八進位制 */
0x4b /* 十六進位制 */
30 /* int */
30u /* 無符號 int */
30l /* long */
30ul /* 無符號 long */
浮點常量
一個浮點常量是由整數部分、小數點、小數部分和指數部分組成。您可以使用小數形式或者指數形式來表示浮點常量。
這裡有一些浮點常量的例項:
3.14159 /* 合法 */
314159E-5L /* 合法 */
510E /* 非法:不完全指數 */
210f /* 非法:沒有小數或指數 */
.e55 /* 非法:缺少整數或小數 */
使用浮點形式表示時,必須包含小數點、指數或同時包含兩者。使用指數形式表示時,必須包含整數部分、小數部分或同時包含兩者。有符號的指數是用 e 或 E 表示的。
字元常量
字元常量是括在單引號裡,例如,'x',且可儲存在一個簡單的字元型別變數中。一個字元常量可以是一個普通字元(例如 'x')、一個轉義序列(例如 '\t')或者一個通用字元(例如 '\u02C0')。
在 C# 中有一些特定的字元,當它們的前面帶有反斜槓時有特殊的意義,可用於表示換行符(\n)或製表符 tab(\t)。在這裡,列出一些轉義序列碼:
轉義序列 | 含義 |
---|---|
\\ | \ 字元 |
\' | ' 字元 |
\" | " 字元 |
\? | ? 字元 |
\a | Alert 或 bell |
\b | 退格鍵(Backspace) |
\f | 換頁符(Form feed) |
\n | 換行符(Newline) |
\r | 回車 |
\t | 水平製表符 tab |
\v | 垂直製表符 tab |
\ooo | 一到三位的八進位制數 |
\xhh . . . | 一個或多個數字的十六進位制數 |
以下是一些轉義序列字元的例項:
namespace EscapeChar
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello\tWorld\n\n");
Console.ReadLine();
}
}
}
當上面的程式碼被編譯和執行時,它會產生下列結果:
Hello World
字串常量
字串常量是括在雙引號 "" 裡,或者是括在 @"" 裡。字串常量包含的字元與字元常量相似,可以是:普通字元、轉義序列和通用字元
使用字串常量時,可以把一個很長的行拆成多個行,可以使用空格分隔各個部分。
這裡是一些字串常量的例項。下面所列的各種形式表示相同的字串。
string a = "hello, world"; // hello, world
string b = @"hello, world"; // hello, world
string c = "hello \t world"; // hello world
string d = @"hello \t world"; // hello \t world
string e = "Joe said \"Hello\" to me"; // Joe said "Hello" to me
string f = @"Joe said ""Hello"" to me"; // Joe said "Hello" to me
string g = "\\\\server\\share\\file.txt"; // \\server\share\file.txt
string h = @"\\server\share\file.txt"; // \\server\share\file.txt
string i = "one\r\ntwo\r\nthree";
string j = @"one
two
three";
定義常量
常量是使用 const 關鍵字來定義的 。定義一個常量的語法如下:
const <data_type> <constant_name> = value;
下面的程式碼演示瞭如何在程式中定義和使用常量:
例項
public class ConstTest
{
class SampleClass
{
public int x;
public int y;
public const int c1 = 5;
public const int c2 = c1 + 5;
public SampleClass(int p1, int p2)
{
x = p1;
y = p2;
}
}
static void Main()
{
SampleClass mC = new SampleClass(11, 22);
Console.WriteLine("x = {0}, y = {1}", mC.x, mC.y);
Console.WriteLine("c1 = {0}, c2 = {1}",
SampleClass.c1, SampleClass.c2);
}
}
當上面的程式碼被編譯和執行時,它會產生下列結果:
x = 11, y = 22
c1 = 5, c2 = 10