2

JetBrains ReSharper の問題

次の C# コードでは、画像リソース ファイルから画像リストを作成しています。ReSharper は、「"NotNull" 属性を持つエンティティへの "null" 割り当ての可能性」を示しています。

この問題は、ResMan_Graphics が null でないことを確認する必要があることを示していますが、null のチェックを配置すると、問題は残ります。

ReSharper の問題を生成するコードは次のとおりです。

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 はコメントを生成しません。

4

3 に答える 3

14

GetObjectnull を返す可能性があるためです。あなたはこれをしたい:

Image image = (Image)ResMan_Graphics.GetObject("ICON_Main");
if (image != null)
    Icons.Images.Add(image);
于 2009-02-11T13:49:04.317 に答える
3

ReSharper は、ResMan_Graphics が null ではないことを解決できるはずです。これは、コンストラクターを呼び出したところです。ただし、GetObject が null を返す可能性があります。これが不満の原因だと思います。

間違っているのは最後の行ですか?あなたができるように聞こえます:

Image image = (Image) ResMan_Graphics.GetObject("ICON_Main");
if (image == null)
{
    // Throw some nasty exception
}
Icons.Images.Add(image);
于 2009-02-11T13:49:50.663 に答える
-1

だからあなたは試しました:

if( ResMan_Graphics != null ) {
  Icons.Images.Add((Image)ResMan_Graphics.GetObject("ICON_Main"));
}
于 2009-02-11T13:46:00.970 に答える