C# ReSharper-空赋值问题
JetBrains重拾器问题 我们有下面的C代码,其中我们从图像资源文件填充imagelist。ReSharper正在向具有“NotNull”属性的实体指示“可能的”null“赋值 该问题将向我们表明,我们只需进行检查,以确保我们的ResMan_图形不为空,但当我们对空进行检查时。。。问题仍然存在 下面是生成重竖琴问题的代码C# ReSharper-空赋值问题,c#,resharper,C#,Resharper,JetBrains重拾器问题 我们有下面的C代码,其中我们从图像资源文件填充imagelist。ReSharper正在向具有“NotNull”属性的实体指示“可能的”null“赋值 该问题将向我们表明,我们只需进行检查,以确保我们的ResMan_图形不为空,但当我们对空进行检查时。。。问题仍然存在 下面是生成重竖琴问题的代码 ResourceManager ResMan_Graphics = new ResourceManager("_Graphics", Assembly.Reflection
ResourceManager ResMan_Graphics = new ResourceManager("_Graphics", Assembly.ReflectionOnlyLoad("lib"));
ImageList Icons = new ImageList();
Icons.Images.Add((Image)ResMan_Graphics.GetObject("ICON_Main"));
以前是否有人遇到过此ReSharper评论,您对如何从资源中填充imageList而不产生此问题有何建议
注意:如果我们将imageList组件放置到表单上,然后从代码中的资源填充imageList,则ReSharper不会生成注释。因此您尝试了:
if( ResMan_Graphics != null ) {
Icons.Images.Add((Image)ResMan_Graphics.GetObject("ICON_Main"));
}
这是因为
GetObject
可能返回null。您要执行以下操作:
Image image = (Image)ResMan_Graphics.GetObject("ICON_Main");
if (image != null)
Icons.Images.Add(image);
ReSharper应该能够计算出ResMan_图形不是空的——您刚刚调用了一个构造函数。然而,GetObject有可能返回null——我想这正是它所抱怨的 是最后一条线路出故障了吗?听起来你可以做到:
Image image = (Image) ResMan_Graphics.GetObject("ICON_Main");
if (image == null)
{
// Throw some nasty exception
}
Icons.Images.Add(image);
杰出的这很有效。将其强制转换为图像,然后检查该图像是否为空的中间步骤。谢谢你的快速回复!