C# - 常量和字面量



常量指的是程式在其執行過程中不能更改的固定值。這些固定值也稱為字面量。常量可以是任何基本資料型別,例如整數常量、浮點常量、字元常量或字串字面量。還有列舉常量。

常量與普通變數一樣,只是它們的定義後其值不能被修改。

整數字面量

整數字面量可以是十進位制或十六進位制常量。字首指定基數或基:十六進位制為 0x 或 0X,十進位制沒有字首。

整數字面量也可以帶有後綴,該字尾是 U 和 L 的組合,分別表示無符號和長整型。字尾可以是大寫或小寫,並且可以按任意順序排列。

以下是一些整數字面量的示例:

212         /* Legal */
215u        /* Legal */
0xFeeL      /* Legal */

以下是各種型別整數字面量的其他示例:

85         /* decimal */
0x4b       /* hexadecimal */
30         /* int */
30u        /* unsigned int */
30l        /* long */
30ul       /* unsigned long */

浮點字面量

浮點字面量具有整數部分、小數點、小數部分和指數部分。您可以用十進位制形式或指數形式表示浮點字面量。

以下是一些浮點字面量的示例:

3.14159       /* Legal */
314159E-5F    /* Legal */
510E          /* Illegal: incomplete exponent */
210f          /* Illegal: no decimal or exponent */
.e55          /* Illegal: missing integer or fraction */

在十進位制表示中,必須包含小數點、指數或兩者;而在使用指數形式表示時,必須包含整數部分、小數部分或兩者。帶符號的指數由 e 或 E 引入。

字元常量

字元字面量用單引號括起來。例如,'x',可以儲存在 char 型別的簡單變數中。字元字面量可以是普通字元(例如 'x')、轉義序列(例如 '\t')或通用字元(例如 '\u02C0')。

在 C# 中,某些字元前面帶有反斜槓時具有特殊含義,用於表示換行符(\n)或製表符(\t)等。以下是一些此類轉義序列程式碼的列表:

轉義序列 含義
\\ \ 字元
\' ' 字元
\" " 字元
\? ? 字元
\a 警告或鈴聲
\b 退格
\f 換頁
\n 換行
\r 回車
\t 水平製表符
\v 垂直製表符
\xhh . . . 一個或多個數字的十六進位制數

以下示例顯示了一些轉義序列字元:

using System;

namespace EscapeChar {
   class Program {
      static void Main(string[] args) {
         Console.WriteLine("Hello\tWorld\n\n");
         Console.ReadLine();
      }
   }
}

編譯並執行上述程式碼後,將產生以下結果:

Hello   World

字串字面量

字串字面量或常量用雙引號 "" 或 @"" 括起來。字串包含與字元字面量類似的字元:普通字元、轉義序列和通用字元。

您可以使用字串字面量將長行分解為多行,並使用空格分隔各個部分。

以下是一些字串字面量的示例。所有三種形式都是相同的字串。

"hello, dear"
"hello, \
dear"
"hello, " "d" "ear"
@"hello dear"

定義常量

常量使用 const 關鍵字定義。定義常量的語法為:

const <data_type> <constant_name> = value;

以下程式演示瞭如何在程式中定義和使用常量:

using System;

namespace DeclaringConstants {
   class Program {
      static void Main(string[] args) {
         const double pi = 3.14159;   
            
         // constant declaration 
         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
廣告