我对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
。
答案 0 :(得分:3)
你可以引入一个匿名(或命名)方法,但我不会说它会改进代码(很多),这取决于你拥有的这些元素的数量:
Action<GrafBase> setVisibleIfNotNull = delegate(GrafBase graf)
{
if (graf != null)
graf.IsVisible = true;
};
setVisibleIfNotNull(item.Graf);
setVisibleIfNotNull(item.GrafReal);
setVisibleIfNotNull(item.GrafIm);