C# 必须完全指定构造函数 公共结构S_矩阵 { 公共整数大小C,大小R; 公共列表条目; 公共S_矩阵(int c,int r) { 这个尺寸C=C; 这个尺寸是R=R; } }
我不知道怎么修理它。当我向列表中添加默认值时,它解决了问题,但我不能简单地在struct中实例化一个值。您的struct字段C# 必须完全指定构造函数 公共结构S_矩阵 { 公共整数大小C,大小R; 公共列表条目; 公共S_矩阵(int c,int r) { 这个尺寸C=C; 这个尺寸是R=R; } },c#,list,struct,C#,List,Struct,我不知道怎么修理它。当我向列表中添加默认值时,它解决了问题,但我不能简单地在struct中实例化一个值。您的struct字段条目\u R没有初始化。在结构中,每个成员都必须在构造函数中初始化。如果您不希望出现这种行为,您可能希望使用一个简单的类 public struct S_Matrix { public int size_C,size_R; public List<entries_R> entry_R; public S_Matrix(int c, in
条目\u R
没有初始化。在结构中,每个成员都必须在构造函数中初始化。如果您不希望出现这种行为,您可能希望使用一个简单的类
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;
}
}
公共结构S_矩阵
{
公共整数大小C,大小R;
公共列表条目;
公共S_矩阵(整数c、整数r、列表en)
{
这个尺寸C=C;
这个尺寸是R=R;
此项输入=en;
//如果不需要构造函数参数:
//this.entry_R=null;
//或:
//this.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>();
}
}
公共类S_矩阵
{
公共整数大小C,大小R;
公共列表条目;
公共S_矩阵(int c,int r)
{
这个尺寸C=C;
这个尺寸是R=R;
//条目\u R一直处于未初始化状态
}
}
您不应该使用结构公共S_矩阵(int c,int r):this(){}
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
}
}