常量是固定值,程序執(zhí)行期間不會改變。常量可以是任何基本數(shù)據(jù)類型,比如整數(shù)常量、浮點常量、字符常量或者字符串常量,還有枚舉常量。
常量可以被當作常規(guī)的變量,只是它們的值在定義后不能被修改。
整數(shù)常量可以是十進制、八進制或十六進制的常量。前綴指定基數(shù):0x 或 0X 表示十六進制,0 表示八進制,沒有前綴則表示十進制。
整數(shù)常量也可以有后綴,可以是 U 和 L 的組合,其中,U 和 L 分別表示 unsigned 和 long。后綴可以是大寫或者小寫,多個后綴以任意順序進行組合。
這里有一些整數(shù)常量的示例:
212 /* 合法 */ 215u /* 合法 */ 0xFeeL /* 合法 */ 078 /* 非法:8 不是一個八進制數(shù)字 */ 032UU /* 非法:不能重復(fù)后綴 */
以下是各種類型的整數(shù)常量的示例:
85 /* 十進制 */ 0213 /* 八進制 */ 0x4b /* 十六進制 */ 30 /* int */ 30u /* 無符號 int */ 30l /* long */ 30ul /* 無符號 long */
一個浮點常量是由整數(shù)部分、小數(shù)點、小數(shù)部分和指數(shù)部分組成。您可以使用小數(shù)形式或者指數(shù)形式來表示浮點常量。
這里有一些浮點常量的示例:
3.14159 /* 合法 */ 314159E-5L /* 合法 */ 510E /* 非法:不完全指數(shù) */ 210f /* 非法:沒有小數(shù)或指數(shù) */ .e55 /* 非法:缺少整數(shù)或小數(shù) */
使用小數(shù)形式表示時,必須包含小數(shù)點、指數(shù)或同時包含兩者。使用指數(shù)形式表示時,必須包含整數(shù)部分、小數(shù)部分或同時包含兩者。有符號的指數(shù)是用 e 或 E 表示的。
字符常量是括在單引號里,例如,'x',且可存儲在一個簡單的字符類型變量中。一個字符常量可以是一個普通字符(例如 'x')、一個轉(zhuǎn)義序列(例如 '\t')或者一個通用字符(例如 '\u02C0')。
在 C# 中有一些特定的字符,當它們的前面帶有反斜杠時有特殊的意義,可用于表示換行符(\n)或制表符 tab(\t)。在這里,列出一些轉(zhuǎn)義序列碼:
轉(zhuǎn)義序列 | 含義 |
---|---|
\\ | \ 字符 |
\' | ' 字符 |
\" | " 字符 |
\? | ? 字符 |
\a | Alert 或 bell |
\b | 退格鍵(Backspace) |
\f | 換頁符(Form feed) |
\n | 換行符(Newline) |
\r | 回車 |
\t | 水平制表符 tab |
\v | 垂直制表符 tab |
\ooo | 一到三位的八進制數(shù) |
\xhh . . . | 一個或多個數(shù)字的十六進制數(shù) |
以下是一些轉(zhuǎn)義序列字符的示例:
namespace EscapeChar { class Program { static void Main(string[] args) { Console.WriteLine("Hello\tWorld\n\n"); Console.ReadLine(); } } }
當上面的代碼被編譯和執(zhí)行時,它會產(chǎn)生下列結(jié)果:
Hello World
字符串常量是括在雙引號 "" 里,或者是括在 @"" 里。字符串常量包含的字符與字符常量相似,可以是:普通字符、轉(zhuǎn)義序列和通用字符
使用字符串常量時,可以把一個很長的行拆成多個行,可以使用空格分隔各個部分。
這里是一些字符串常量的示例。下面所列的各種形式表示相同的字符串。
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 關(guān)鍵字來定義的 。定義一個常量的語法如下:
const <data_type> <constant_name> = value;
下面的代碼演示了如何在程序中定義和使用常量:
using System; 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); } }
當上面的代碼被編譯和執(zhí)行時,它會產(chǎn)生下列結(jié)果:
x = 11, y = 22 c1 = 5, c2 = 10