常量是固定值,程序執行期間不會改變。常量可以是任何基本數據類型,比如整數常量、浮點常量、字符常量或者字符串常量,還有枚舉常量。
常量可以被當作常規的變量,只是它們的值在定義後不能被修改。
整數常量可以是十進制、八進制或十六進制的常量。前綴指定基數: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)。在這裡,列出一些轉義序列碼:
以下是一些轉義序列字符的實例:
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;
下面的代碼演示了如何在程序中定義和使用常量:
using System; namespace DeclaringConstants { class Program { static void Main(string[] args) { const double pi = 3.14159; // 常量聲明 double r; Console.WriteLine("Enter Radius: "); r = Convert.ToDouble(Console.ReadLine()); double areaCircle = pi * r * r; Console.WriteLine("Radius: {0}, Area: {1}", r, areaCircle); Console.ReadLine(); } } }
當上面的代碼被編譯和執行時,它會產生下列結果:
Enter Radius: 3 Radius: 3, Area: 28.27431