Z
ZHANK
入门基础

变量与类型

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;      // 运行时常量(构造时赋值)