当我添加 ".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/