Lou*_*hys 6 .net c# constructor
例如,您希望可以使用文件路径和使用字符串以两种方式初始化对象.通常两者构造应该采取一个字符串参数,MyObject(string file)和MyObject(string content),但不可能超载这种方式.你有什么建议?
编辑:在第一种情况下,还需要文件路径,因此请不要建议读取文件内容的解决方案,只是将内容传递给其他构造函数.
sjr*_*sjr 16
我不是C#程序员,但这看起来像静态工厂方法模式的工作:
class MyObject {
public static MyObject FromContent(string content) {
return new MyObject(content);
}
public static MyObject FromFile(string path) {
return new MyObject(ReadContentFromFile(path));
}
}
Run Code Online (Sandbox Code Playgroud)
那你可以做
MyObject object = MyObject.FromFile("/some/path");
Run Code Online (Sandbox Code Playgroud)
这比使用常规构造函数更具可读性.
Mar*_*ers 10
也许您可以更改第一个接受FileInfo:
class MyObject
{
public MyObject(FileInfo file) { /* etc... */ }
public MyObject(string content) { /* etc... */ }
}
...
MyObject o = new MyObject(new FileInfo(filename));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2121 次 |
| 最近记录: |