例如,您希望一个对象可能以两种方式初始化,使用文件路径和使用字符串。通常两个构造函数都应该采用一个字符串参数,MyObject(string file)
和 MyObject(string content)
,但不可能以这种方式重载。你有什么建议?
编辑:在第一种情况下,还需要文件路径,因此请不要建议读取文件内容并将内容传递给其他构造函数的解决方案。
最佳答案
我不是 C# 程序员,但这看起来像是 static factory method 的工作图案:
class MyObject {
public static MyObject FromContent(string content) {
return new MyObject(content);
}
public static MyObject FromFile(string path) {
return new MyObject(ReadContentFromFile(path));
}
}
然后你可以做
MyObject object = MyObject.FromFile("/some/path");
这比使用常规构造函数更具可读性。
关于c# - 如何创建两个构造函数重载,都只采用一个字符串参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5000223/