从另一个构造函数实现调用构造函数的最佳方法?

时间:2013-08-08 13:08:17

标签: c# inheritance constructor instantiation

设置

  • 我有一个用FileInfo参数创建的类(让我们调用这个MyFileClass)
  • 我有另一个场景,如果URL和描述作为字符串传入,它将创建一个文件,然后它应该基本上创建MyFileClass与它刚刚创建的文件的FileInfo对象。

我想象它看起来像:

public MyFileClass(FileInfo info)
{
    //do things 
}

public MyFileClass (string url, string Description)
{
    // var tempfile = FileInfo that results from creating file 
    MyFileClass(tempfile)
}

问题

实施这个想法的正确方法是什么?我已经将文件创建部分缩小了,只是不太确定使其以这种方式工作的语法。

1 个答案:

答案 0 :(得分:3)

您可以实现静态方法来创建FileInfo。

public class MyFileClass
{
    public MyFileClass(FileInfo info)
    {
        // do work
    }

    public MyFileClass(string url, string description)
        : this(GetFileInfo(url, description))
    { 
        // do more work
    }

    static FileInfo GetFileInfo(string url, string description)
    {
        return new FileInfo();
    }
}