变量与类型
var 类型推导、值类型 vs 引用类型、const/readonly、default 字面量
变量与类型
C# 是强类型语言,但 var 让声明更简洁。理解值类型和引用类型的区别是 C# 的核心基础。
学完本章你将: 掌握 var 类型推导、值类型 vs 引用类型、const/readonly。
变量声明
csharp
// 显式类型
int age = 25;
string name = "小明";
double score = 92.5;
bool active = true;
// var 类型推导(编译时确定类型)
var count = 42; // int
var message = "Hello"; // string
var list = new List<int>(); // List<int>
// ❌ var 不能用于字段(类成员)
// ❌ var x; // 必须初始化才能推导
值类型 vs 引用类型
csharp
// 值类型:直接存数据,赋值时复制
int a = 10;
int b = a; // b 是独立副本
b = 20; // a 还是 10
// 引用类型:存地址,赋值时共享
var list1 = new List<int> { 1, 2, 3 };
var list2 = list1; // list2 和 list1 指向同一对象
list2.Add(4); // list1 也变了!
内置类型速查
csharp
// 整数
int i = 42; long l = 42L;
short s = 42; byte b = 255;
// 浮点
float f = 3.14f; double d = 3.14;
decimal m = 3.14m; // 金融计算(高精度)
// 其他
char c = 'A'; bool flag = true;
string str = "Hi"; object obj = 42; // 所有类型的基类
const vs readonly
csharp
const double PI = 3.14159; // 编译期常量(隐式 static)
readonly DateTime Created; // 运行时常量(构造时赋值)