加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – FileInfo的空对象模式

发布时间:2020-12-16 01:58:42 所属栏目:百科 来源:网络整理
导读:我有一个返回FileInfo对象的方法.调用方法后调用fooFile.FullName. 一切都很好,但有一种情况,FileInfo可以为null,但我不希望(丑陋)null检查方法被调用. 我所知道的是某种null-FileInfo(Null-Object-Pattern).调用fooFile.FullName返回空字符串就足够了. 不幸
我有一个返回FileInfo对象的方法.调用方法后调用fooFile.FullName.

一切都很好,但有一种情况,FileInfo可以为null,但我不希望(丑陋)null检查方法被调用.

我所知道的是某种null-FileInfo(Null-Object-Pattern).调用fooFile.FullName返回空字符串就足够了.
不幸的是,新的FileInfo(string.Empty)不起作用.

搜索SO带来了这个java-question,但答案对我没有帮助.

有没有办法将FileInfo与Null-Object-Pattern结合使用?

解决方法

你可以用??运算符在需要时使用默认的FileInfo,静态变量代表什么是默认的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");
}

如果您要使默认文件可读,那么您当然需要指定有效的文件名.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读