构造函数中的参数:结构与类

时间:2013-05-23 14:29:09

标签: c# visual-studio-2012

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

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

它不再抱怨......

任何线索?

1 个答案:

答案 0 :(得分:4)

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

然后,结构不能包含参数less constructor [MSDN]

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

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