我有一个返回 FileInfo
对象的方法。调用方法后 fooFile.FullName
被调用。
一切正常,但在某些情况下 FileInfo
可以是 null
,但我不希望在调用方法的地方进行(丑陋的)null 检查。
我需要的是某种空文件信息 ( Null-Object-Pattern )。当调用 fooFile.FullName
返回一个空字符串时就足够了。
不幸的是 new FileInfo(string.Empty)
不起作用。
正在搜索所以带上这个 java-question ,但答案对我没有帮助。
有没有办法将 FileInfo
与 Null-Object-Pattern 结合使用?
最佳答案
您可以使用 ??
运算符在需要的地方使用默认的 FileInfo
,并在某处使用一个静态变量来表示默认的文件信息:
public void MyMethod(FileInfo fi)
{
// use default fileinfo if null is passed to this method
fi = fi ?? DefaultFileInfo.Value;
// method code...
// do something with the fileinfo, it is not null for sure now.
}
默认文件信息类:
public static class DefaultFileInfo
{
public static readonly FileInfo Value = new FileInfo("null");
}
如果要使默认文件可读,当然需要指定一个有效的文件名。
关于c# - FileInfo 的空对象模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20266640/