c# - Path.GetExtension(file.FileName) 给出可能的 Nullreference 警告

标签 c# .net resharper nullreferenceexception

当我添加 ".ToLowerInvariant()" 对于 Path.GetExtension(file.FileName),ReSharper 会针对可能的 Nullreference 异常发出警告。

我已尝试关注,但警告并没有消失。我错过了什么?

if (file != null && Path.GetExtension(file.FileName) != null)
            {
                switch (Path.GetExtension(file.FileName).ToLowerInvariant())
                {
                    case ".jpg":
                    case ".png":
                    case ".gif":
                    case ".jpeg":
                        break;
                    default:
                        break;

                }
}

最佳答案

因为在 Path.GetExtension() 的结果上调用了 ToLowerInvariant()。无法保证 Path.GetExtension() 将返回任何有意义的内容(例如,如果 file.Filename 为 null)。

最好先检查 Path.GetExtension 的结果是否为空,然后再对其调用任何其他内容。 (或者在将 file.FileName 放入 GetExtension 之前调用 ToLower() ).

关于c# - Path.GetExtension(file.FileName) 给出可能的 Nullreference 警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7978635/

相关文章:

javascript - 在 jQuery 的 DataTables-Table 插件中发布数据

c# - 让 C# 控制台应用程序包装完整的单词而不是拆分它们

c# - 正则表达式获取文件扩展名

c# - 序列化数据太大

c# - 我需要删除循环绘制的图形

重新整理完成而不会覆盖现有代码

jquery - 类型 “jQueryStatic<TElement extends Node>” 的值不可调用

.net - 为什么 COM 对象不使用 IDisposable?

.net - 在 ASP .Net 自定义成员资格提供程序中锁定用户

javascript - 函数表达式可以转换为 lambda 表达式