var用于隐式类型声明,编译器自动推断类型;推荐用于匿名类型、泛型集合初始化、LINQ查询及using资源声明;应避免在返回类型不明确、基础类型歧义、可读性优先场景及null初始化时使用。

在 C# 中,var 关键字用于隐式类型声明,编译器会根据初始化表达式的右侧自动推断变量的类型。虽然它让代码更简洁,但合理使用才能提升可读性与维护性。
何时应该使用 var
在以下场景中使用 var 是推荐做法,能提高代码清晰度而不牺牲可读性:
- 匿名类型:当使用 LINQ 查询返回匿名对象时,必须使用 var,因为无法显式写出类型名。
-
泛型集合初始化:当右侧已明确表达类型时,使用 var 可避免重复。例如:var list = new List
(); -
LINQ 查询表达式:查询结果常为
IEnumerable,类型较复杂,用 var 更简洁。 - using 语句中的资源声明:如数据库连接或文件流,类型通常从构造函数明显可推。
何时应避免使用 var
尽管 var 很方便,但在某些情况下会降低代码可读性,应避免使用:
- 初始化值类型不明确:如 var result = SomeMethod();,若方法重载多或返回类型不直观,读者难以判断类型。
- 基础类型歧义:比如 var count = 1; 推断为 int,但你本意可能是 long 或 decimal,容易引发误解。
- 可读性优先的场景:在公共 API、教学材料或团队协作中,显式类型有助于快速理解代码意图。
- null 初始化:不能写 var item = null;,因为编译器无法推断类型,会报错。
基本上就这些。var 是工具,不是规则。关键是让代码易于理解——类型明显时用 var 没问题,类型模糊时显式声明更安全。









