由于构造函数的参数更改,我正在重构某些代码。我正在寻找最清晰,最简单的方法来声明此类的属性。
在此示例中,Button
将构造函数从以前的参数更改为没有。
最初的属性如下:
public Button Person
{
get
{
if (AppPlatform == Platform.XYZ) return new Button(x => x.Id("imagePerson"));
else return new Button(x => x.Id("c_person"));
}
}
在更改Button类的构造函数之后,我想出了这种方法来声明属性,但是我发现它看起来“太大”或笨拙。
public Button Person
{
get
{
if (AppPlatform == Platform.XYZ)
controlIdQuery = x => x.Id("imagePerson");
else
controlIdQuery = x => x.Id("c_person");
return this;
}
}
此外,我将通过合成将属性添加到这样的各种类中:
public Button Person => new Buttons().Person;
所以我什至不确定该属性是否应该返回this
。它可以像return Person
一样返回自身吗?
当我需要将Button嵌入到无法通过继承访问controlIdQuery
的类中时,笨拙变得更糟:
public Button Down
{
get
{
Button b = new Button { controlIdQuery = x => x.Id("imagePerson") };
return b;
}
}
TL; DR:这种类型的属性声明有简写形式吗?