C#通过new实例化的几种方式
前言
在更新Runtime源码发现一个new实例化对象的代码规范.文档中新增内容:
Similarly, target-typed `new()` can only be used when the type is explicitly named on the left-hand side,
in a variable definition statement or a field definition statement. e.g. `FileStream stream = new(...);`,
but not `stream = new(...);` (where the type was specified on a previous line).
上面说的 new ()实例化对象是C# 9.0新增的一种方式.
//第一种实例化对象
FileStream stream = new FileStream("11.txt", FileMode.Create);
//处理
stream.Dispose();
//第二种实例化对象
//在.Net 3.5(官方文档)支持var可推断类型,这个语法糖还是很受大家,当然有有一部分人不喜欢这个语法糖
using (var fileStream = new FileStream("123.txt", FileMode.Create))
{
}
//第三种实例化对象
//在C# 9.0的时候,增加了新的语法
//左侧声明具体类型,右侧new 可以省略具体类型
using (FileStream fileStream1 = new("456.txt", FileMode.Create))
{
}
新增的代码规范主要规范下面这种情况:
List<int> list = new(8); //左侧有具体类型,右侧可以简化
//如果左侧只是变量,右侧使用简化的new也是没问题的,编译器编译时替换成具体类型,但主要不利于人阅读代码
list = new(16);
秋风
2022-04-04