1

为什么以下代码片段不起作用?

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)
{
.... 
}

它不再抱怨了……

有什么线索吗?

4

1 回答 1

4

因为AStruct编译器抱怨没有参数少的构造函数。那么,为什么还要麻烦添加: this()到参数构造函数中呢?

再说一次,结构不能包含无参数构造函数[MSDN]

我已经阅读了一些内容,我现在猜你有一个命名空间问题。如果命名空间正确,我建议您尝试重新启动 Visual Studio 并进行重建。我有时会遇到无法解释的错误,在 Visual Studio 重新启动和重建后,问题就解决了。

否则,我们能得到错误代码吗?CS....

于 2013-05-23T14:30:43.867 回答