【发布时间】:2021-02-15 18:42:58
【问题描述】:
我正在尝试这样做:
protected List<T> list = new List<T>();
for (int i = 0; i < size; i++)
{
list.Add(null);
}
我收到一个编译器错误提示“无法从 null 转换为 T”。
我环顾四周,但找不到这个问题的答案。
【问题讨论】:
-
在这种情况下
T是什么? -
@David 我花了一段时间试图弄清楚这一点,T 是一个引用类型,一旦我将
where T : class添加到约束中,我就可以添加 null 成员。可以避免的问题,但也许其他人遇到了这个问题并可以从中受益。 -
list = Enumerable.Repeat(default(T), size).ToList();注意,如果T是struct(例如int、bool等),default(T)将不是null