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 回答