6

为 C# 公共属性设置默认值的最简单/直接的方法是什么?

// 我如何为此设置默认值?

public string MyProperty { get; set; }

请不要建议我使用私有属性并实现获取/设置公共属性。尽量保持简洁,并且不想争论为什么会更好。谢谢。

4

6 回答 6

9

只需在构造函数中初始化它:

public class MyClass
{
    public string MyProperty { get; set; }

    public MyClass()
    {
        MyProperty = "default value";
    }
}

请注意,如果您有多个构造函数,则需要确保它们中的每一个都设置属性或委托给另一个构造函数。

于 2010-07-26T14:13:54.357 回答
5

在构造函数中设置默认值:

this.MyProperty = <DefaultValue>;
于 2010-07-26T14:13:41.550 回答
3

请不要建议我使用私有财产

这是设置此类默认值的标准方法。您可能不喜欢它,但即使是自动属性语法在编译后的作用 - 它会生成一个私有字段并在 getter 和 setter 中使用它。

您可以在构造函数中设置属性,该属性将尽可能接近默认值。

于 2010-07-26T14:13:44.857 回答
2

不,如果您可以仅标记属性以指示默认值,那就太好了,但您不能。如果你真的想使用自动属性,你不能在属性声明中设置默认值。

我想出的最干净的解决方法是在构造函数中设置默认值。它还是有点丑。默认值不与属性声明并置,如果您有多个构造函数可能会很痛苦,但这仍然是我发现的最好的

于 2010-07-26T14:15:33.483 回答
2

如果您要使用属性的自动实现,唯一真正的选择是在构造函数中初始化属性值。

于 2010-07-26T14:15:43.040 回答
1

从 C# 6.0 开始,您可以为自动属性分配默认值。

public string MyProperty {get; set; } = "Default Value";
于 2016-11-05T07:11:28.300 回答