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)。在這裏,列出一些轉義序列碼:

轉義序列含義
\\\ 字元
\'' 字元
\"" 字元
\?? 字元
\aAlert 或 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;

下麵的代碼演示了如何在程式中定義和使用常量:

實例

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);
    }
}

當上面的代碼被編譯和執行時,它會產生下列結果:

x = 11, y = 22
c1 = 5, c2 = 10