public struct S_Matrix
{
public int size_C,size_R;
public List<entries_R> entry_R;
public S_Matrix(int c, int r)
{
this.size_C = c;
this.size_R = r;
}
}
我不知道如何修复它。当我向List添加默认值时,它修复了问题,但我不能简单地在struct中实例化一个值。
答案 0 :(得分:1)
您的结构字段entry_R
未初始化。在结构中,每个成员都必须在构造函数中初始化。如果您不想要这种行为,可能需要使用一个简单的类。
public struct S_Matrix
{
public int size_C, size_R;
public List<entries_R> entry_R;
public S_Matrix(int c, int r, List<entries_R> en)
{
this.size_C = c;
this.size_R = r;
this.entry_R = en;
// If you don't want a constructor parameter:
// this.entry_R = null;
// or:
// this.entry_R = new List<entries_R>();
}
}
在大多数情况下,课程就是你想要的。只有在知道自己在做什么的情况下才应该使用结构。
public class S_Matrix
{
public int size_C, size_R;
public List<entries_R> entry_R;
public S_Matrix(int c, int r)
{
this.size_C = c;
this.size_R = r;
// entry_R keeps being uninitialised
}
}