.NET Core中= []是什么含义?如何转换到.NET 4.8?
关于.NET Core中
= []的含义及.NET 4.8兼容改造 一、= []的含义
这是C# 9.0及更高版本支持的目标类型数组初始化器语法,作用是给items属性设置默认的空可枚举集合:
- 编译器会根据属性的
IEnumerable<MyDoctor>类型,自动推断[]是创建一个空的MyDoctor[]数组 - 因为数组本身实现了
IEnumerable<T>接口,所以可以直接赋值给该属性,相当于简化了new MyDoctor[0]的写法
二、适配.NET 4.8的修改方案
.NET 4.8对应的C#版本最高为7.3,不支持上述简化语法,你可以用以下两种等价写法替代:
方式1:显式创建空数组
public IEnumerable<MyDoctor> items { get; set; } = new MyDoctor[0];
方式2:使用Enumerable.Empty<T>(需引用System.Linq)
using System.Linq; public IEnumerable<MyDoctor> items { get; set; } = Enumerable.Empty<MyDoctor>();
这两种写法都能达到和原代码一致的效果:给items属性初始化一个空的可枚举集合,避免属性默认值为null。
内容的提问来源于stack exchange,提问作者Totoblo
相关产品推荐
相关产品推荐

