C# 变量(Variables)详解
下面是关于 C# 变量(Variables) 的全面专业解读,包括变量的声明、作用域、命名规范、类型推断(var)、常量(const)、只读变量(readonly)、静态变量等内容,并附带代码示例,适合系统学习与实际开发。
目录导航
- 什么是变量?
- 变量声明与初始化
- C# 变量类型分类
- 类型推断变量(
var) - 常量(
const)与只读变量(readonly) - 静态变量(
static) - 变量作用域(Scope)
- 命名规范与建议
- 权威文档与学习链接
1️⃣ 什么是变量?
变量是用于存储数据值的命名内存位置。在 C# 中,每个变量都必须声明类型,并且只能存储该类型的数据。
2️⃣ 变量声明与初始化
✍️ 基本语法
int age; // 声明变量
age = 25; // 赋值
int score = 100; // 声明并初始化
🧪 示例
string name = "Alice";
double pi = 3.14159;
bool isActive = true;
🔗 文档参考:https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/variables/
3️⃣ C# 变量类型分类
| 类型 | 示例 | 说明 |
|---|---|---|
| 值类型 | int, bool | 存储实际的值 |
| 引用类型 | string, object, 自定义类 | 存储的是对象引用 |
| 指针类型 | int*, char* | 仅在不安全代码(unsafe)中使用 |
值类型(Value Types):
int,float,bool,char,struct,enum
引用类型(Reference Types):
string,class,interface,delegate,object,array
4️⃣ 类型推断变量(var)
var 由编译器自动推断数据类型,但编译时必须能够明确推断类型。
var message = "Hello"; // 推断为 string
var number = 123; // 推断为 int
⛔ 不允许:
var something; // ❌ 报错:必须初始化
🔗 文档参考:https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/var
5️⃣ 常量(const)与只读变量(readonly)
🔹 const:编译时常量,值不可改变
const double Pi = 3.14159;
- 必须在声明时赋值
- 值在编译时固定
🔹 readonly:运行时只读字段
readonly int id;
public MyClass(int id)
{
this.id = id; // 只能在构造函数中赋值
}
🔗 文档参考:
6️⃣ 静态变量(static)
静态变量属于类本身而非对象实例。
class Counter
{
public static int Count = 0;
}
调用方式:
Counter.Count++;
🔗 文档参考:https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/static-classes-and-static-class-members
7️⃣ 变量作用域(Scope)
| 作用域类型 | 示例 | 可访问范围 |
|---|---|---|
| 局部变量 | 方法或代码块中声明 | 只在代码块中有效 |
| 成员变量 | 类的字段 | 整个类中可访问 |
| 参数变量 | 方法参数 | 方法内部可访问 |
| 静态变量 | 带 static 的字段 | 所有类共享,不依赖对象 |
🔍 示例:
class Demo
{
int instanceVar = 10; // 成员变量
static int staticVar = 20; // 静态变量
void Method(int param) // 参数变量
{
int localVar = 30; // 局部变量
}
}
8️⃣ 命名规范与建议
✔ 遵循 Microsoft C# 命名约定
| 类型 | 命名规范 | 示例 |
|---|---|---|
| 变量 | camelCase | totalScore |
| 常量 | PascalCase 或全大写 | MaxCount / MAX |
| 字段 | _camelCase(私有) | _totalScore |
| 静态字段 | PascalCase | DefaultCount |
权威文档与学习链接
- 📘 C# 变量官方介绍:https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/variables/
- 📘 数据类型详解:https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/built-in-types
- 📘 命名规范:https://learn.microsoft.com/en-us/dotnet/standard/design-guidelines/naming-guidelines
- 📘
readonlyvsconst比较:https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/readonly