3

私は一般的にC#とプログラミングの経験があまりありませんが、次のような記述を避けるために何かがあるに違いないと思います:

                if (item.Graf != null)
                {
                    item.Graf.IsVisible = true;
                }
                if (item.GrafReal != null)
                {
                    item.GrafReal.IsVisible = true;
                }
                if (item.GrafIm != null)
                {
                    item.GrafIm.IsVisible = true;
                }

など。遅延初期化と呼ばれるものがあることは知っていますが、実際には新しいアイテムを作成する必要はなく、プロパティを変更するために存在するかどうかを確認するだけIsVisibleです。その存在を確認しない場合 (存在しない場合) Null Reference Expection、.

4

1 に答える 1

3

匿名 (または名前付き) メソッドを導入できますが、それによってコードが (大幅に) 改善されるとは言えません。そのような要素の数によって異なります。

Action<GrafBase> setVisibleIfNotNull = delegate(GrafBase graf)
{
    if (graf != null)
        graf.IsVisible = true;
};
setVisibleIfNotNull(item.Graf);
setVisibleIfNotNull(item.GrafReal);
setVisibleIfNotNull(item.GrafIm);
于 2013-06-20T09:47:29.000 に答える