我有同样的问题IList<int> throws Null Reference Exception when adding values,解决方案是用“new List();”初始化构造函数中的list字段,但在我的程序中我有一个结构,没有一个类。如果C#中的结构是无参数的,我可以用C#做什么?
public struct ListStruct<T> : IEnumerable<T>, IList<T>
{
private List<T> value;
//public ListStruct()
//{
// this.value = new List<T>();
//}
// ...
public void Add(T item)
{
((IList<T>)value).Add(item); // Execution time: NullReferenceException was unhandled
}
}
答案 0 :(得分:0)
如果您真的需要这个,可以对{0}进行Add()
方法测试,并在必要时指定一个新列表。
很难理解为什么你会需要这个。它在语义上不是一种价值类型,因此它通常不应该是struct
,并且出于性能原因滥用它并因此没有多大意义。比你原本更复杂的道路。