此C#属性声明是否有简短的版本?

时间:2019-01-15 14:07:44

标签: c#

由于构造函数的参数更改,我正在重构某些代码。我正在寻找最清晰,最简单的方法来声明此类的属性。

在此示例中,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:这种类型的属性声明有简写形式吗?

0 个答案:

没有答案