C# - 常量和字面量:初学者指南

你好,有抱负的程序员们!今天,我们将深入探讨C#中的常量和字面量的世界。不要担心这些术语听起来有点吓人 - 到了这个教程结束时,你会像一个专业人士一样使用它们!

C# - Constants

常量和字面量是什么?

在我们深入细节之前,让我们先了解常量和字面量是什么。可以将常量视为特殊的变量,一旦设置后它们的值就不会改变。另一方面,字面量是我们代码中使用的实际值。

现实世界的类比

想象你有一个最喜欢的杯子。这个杯子本身就像一个常量 - 它不会改变。你每天早上倒进去的咖啡就像一个字面量 - 它是你正在处理的实际值。

现在,让我们探索C#中不同类型的字面量!

整数字面量

整数字面量是没有小数点的完整数字。在C#中,我们可以用不同的方式来表示它们。

十进制(基数为10)字面量

这些是我们日常生活中使用的数字。

int myAge = 25;
long worldPopulation = 7800000000;

在这个例子中,257800000000 是整数字面量。

十六进制(基数为16)字面量

十六进制数字以 0x0X 开头。

int hexValue = 0x1A; // 等同于十进制的26

在这里,0x1A 是一个十六进制字面量。

二进制(基数为2)字面量

二进制数字以 0b0B 开头。

int binaryValue = 0b1010; // 等同于十进制的10

在这种情况下,0b1010 是一个二进制字面量。

浮点数字面量

浮点数字面量表示带有小数点的数字。

float pi = 3.14f;
double avogadroNumber = 6.022e23;
decimal bankBalance = 1234.56m;

在这些例子中:

  • 3.14f 是一个float字面量(注意 'f' 后缀)
  • 6.022e23 是一个double字面量,使用科学记数法
  • 1234.56m 是一个decimal字面量(注意 'm' 后缀)

字符常量

字符常量表示单个Unicode字符,并被单引号包围。

char grade = 'A';
char newline = '\n';

在这里,'A''\n' 是字符常量。\n 是一个特殊的转义序列,表示换行符。

字符串字面量

字符串字面量是被双引号包围的字符序列。

string greeting = "Hello, World!";
string path = @"C:\Users\YourName\Documents";

在这些例子中:

  • "Hello, World!" 是一个常规字符串字面量
  • @"C:\Users\YourName\Documents" 是一个逐字字符串字面量,其中反斜杠被视为字面字符

多行字符串字面量

C# 11引入了一种写多行字符串的新方法:

string poem = """
玫瑰是红色的,
紫罗兰是蓝色的,
C# 是棒的,
你也是!
""";

这使得编写多行字符串变得更加容易和可读!

定义常量

现在我们已经覆盖了字面量,让我们谈谈如何在C#中定义常量。

要定义一个常量,我们使用 const 关键字:

public class MathConstants
{
public const double PI = 3.14159265359;
public const int DAYS_IN_WEEK = 7;
}

在这里,PIDAYS_IN_WEEK 是常量。一旦定义,它们的值就不能改变。

何时使用常量

当你的值满足以下条件时,使用常量:

  1. 在编译时已知
  2. 在程序执行期间不会改变
  3. 在你的代码中多次使用

例如,数学常量、配置值或算法中的魔法数字都是常量的好候选。

常见的C#常量表

这里有一份你可能会在C#中使用的一些常见常量的便捷表格:

常量名称 描述
Math.PI 3.14159265358979323846 圆的周长与其直径的比率
Math.E 2.7182818284590452354 自然对数的底
int.MaxValue 2,147,483,647 32位有符号整数的最大值
int.MinValue -2,147,483,648 32位有符号整数的最小值
double.PositiveInfinity 表示正无穷大
double.NegativeInfinity -∞ 表示负无穷大
string.Empty "" 空字符串

结论

恭喜你!你已经迈出了进入C#中的常量和字面量世界的第一步。记住,这些是你程序的基本构建块,所以深入理解它们将为你在编程旅程中取得成功奠定基础。

随着你不断学习和成长,你会发现自己越来越多地使用这些概念。不要害怕实验 - 学习的最佳方式是通过实践!

继续编码,保持好奇心,并记住:在编程的世界里,你是常量,而你的知识是不断增长的变量。快乐编码!

Credits: Image by storyset