为什么以下代码段不起作用?
public struct AStruct
{
public bool Fi { get; set; }
public string Fei{ get; set; }
public bool Fo{ get; set; }
public string Fam{ get; set; }
public AStruct(bool fi, string fei, bool fo, string fam)
: this()
{
this.Fi = fi;
this.Fei = fei;
this.Fo = fo;
this.Fam = fam;
}
}
最后在控件的构造函数中调用它
public GS(AStruct astruct)
{}
Visual Studio 2012和编译器抱怨,找不到AStruct。
如果我将其更改为
public class AStruct
{
....
}
public AStruct(bool fi, string fei, bool fo, string fam)
{
....
}
它不再抱怨......
任何线索?
答案 0 :(得分:4)
因为AStruct
没有参数更少的构造函数,编译器会抱怨。那么为什么还要将: this()
添加到参数化构造函数中呢?
然后,结构不能包含参数less constructor [MSDN]。
我已经阅读了一下,我现在猜你有一个命名空间问题。如果命名空间是正确的,我建议您尝试重新启动Visual Studio并进行重建。我有时会遇到无法解释的错误,在Visual Studio重新启动和重建之后问题就解决了。
否则,我们能得到错误代码吗? CS ....