我正在尝试为一个类重载构造函数。我认为这应该很简单,但是我似乎无法使其工作。

有任何想法吗?

    public SaveFile(string location)
    {
        // Constructor logic here
        //TODO: Implement save event.
        this.Save(location);
    }

    public SaveFile()
    {
        string location = Environment.GetFolderPath(Environment.SpecialFolder.Personal) + "\\SaveFile.DAT";
        SaveFile(location);
    }


这不能正确编译,我不知道如何使它工作。

最佳答案

您从默认构造函数中调用重载的构造函数的语法错误。
要在同一类中调用重载的构造函数,请使用以下语法:

public ClassName(parameters) : this(otherParameters)
{
   // logic
}


如果要在基类中调用构造函数,则可以使用base关键字而不是this。在您的情况下,代码将显示为:

public SaveFile() : this(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), "SaveFile.DAT") {}
public SaveFile(string location)
{
    this.Save(location);
}

10-04 15:09