c# - FileInfo 的空对象模式

标签 c# .net file design-patterns fileinfo

我有一个返回 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/

相关文章:

c# - 文件资源管理器打开时如何修改目录时间戳?

php - 在php中编写sql代码并用php将变量写入文件

c# - 方法应该抛出异常但它没有

c# - 如何将散列键与 C# 中的值列表映射?

c# - 我们可以用 DllImport 方法签名中的 "int"替换所有 "IntPtr"参数和返回类型吗?

c# - 添加 const 关键字会中断 Path.Combine 调用

.net - 确定文件是否可以 move 或复制

file - JavaFX FileChooser 不返回 Windows 的文件扩展名

c# - 在 if-else 语句范围之外定义 var 以备后用

c# - 图像控件的 OnLoad 客户端事件