C#中省略类型的new对象实例化语法的正式名称是什么?
C# 目标类型
new表达式说明 特性名称
你看到的这种实例化语法正式名称为 目标类型new表达式。
支持版本
该特性是C# 9.0版本引入的语法糖,对应支持.NET 5及更高版本的SDK。
特性规则
当实例化对象的赋值目标类型已经可以被编译器明确推断时,你可以省略new关键字后的类名,编译器会自动匹配目标类型完成实例化,避免重复书写类型名称。
你给出的示例代码:
using StreamWriter file = new("WriteLines2.txt", append: true);
等价于传统的完整写法:
using StreamWriter file = new StreamWriter("WriteLines2.txt", append: true);
该特性仅为编译期语法糖,编译后的底层执行逻辑和完整书写类型的实例化代码完全一致,不会带来运行时性能差异。
常见适用场景
- 明确标注类型的变量声明且直接赋值的场景
- 给已知类型的类字段、属性赋值的场景
- 调用方法时,对应形参类型已明确的传参场景
- 返回值类型已明确的方法
return语句场景
如果编译器无法唯一确定要实例化的类型,会抛出编译错误,此时补全new后的类型名即可解决。
内容的提问来源于stack exchange,提问作者CodeRonnie
相关产品推荐
相关产品推荐

