C# 常量与字面量大全:类型、规则与最佳实践
常量是指程序执行期间值不能改变的固定值,也称为字面量。常量可以是任何基本数据类型:整数、浮点数、字符、字符串,也包括枚举常量。常量与普通变量类似,但定义后值不可修改。
整数字面量
整数字面量可以是十进制或十六进制常量。前缀指定基数:0x 或 0X 表示十六进制,十进制无前缀。
后缀可以是 U(无符号)和 L(长整型)的组合,大小写不敏感,顺序任意。
合法整数字面量示例
212 // 合法
215u // 合法(无符号)
0xFeeL // 合法(十六进制长整型)
各类整数字面量示例
85 // 十进制
0x4b // 十六进制
30 // int
30u // 无符号 int
30l // long
30ul // 无符号 long
浮点字面量
浮点字面量包含整数部分、小数点、小数部分和指数部分。可用十进制或指数形式表示。
浮点字面量示例
3.14159 // 合法
314159E-5F // 合法(指数形式)
510E // 非法:指数不完整
210f // 非法:无小数点或指数
.e55 // 非法:缺少整数或小数部分
十进制形式必须包含小数点、指数或两者;指数形式必须包含整数部分、小数部分或两者。有符号指数由 e 或 E 引入。
字符常量
字符字面量用单引号括起,如 'x',可存储在 char 类型变量中。字符字面量可以是:
- 普通字符(如
'x') - 转义序列(如
'\t') - 通用字符(如
'\u02C0')
常用转义序列
| 转义序列 | 含义 |
|---|---|
| \\ | \ 字符 |
| \' | ' 字符 |
| \" | " 字符 |
| \? | ? 字符 |
| \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; // 常量声明
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();
}
}
}
输出示例(输入半径 3):
Enter Radius: 3
Radius: 3, Area: 28.27431
提示:const 常量在编译时确定值,readonly 字段可在运行时(构造函数中)赋值,二者按需选择。
C语言