首页 > 解决方案 > 有没有在构造函数中设置默认值的好习惯?

问题描述

考虑一个简单的类

public class MyClass
{
    private int myProperty
    ...

    public int MyProperty
    {
        get
        {
            return myProperty;
        }
        set
        {
            // some evaluation/condition
            myProperty= value;
        }
    }
    ...
}

现在,如果我想创建一个空的构造函数,在其中为类属性设置默认值,我可以这样做:

public MyClass()
{
    myProperty = 1;
    ...
}

或者这样:

public MyClass()
{
    MyProperty = 1;
    ...
}

这两个示例似乎都有效,因为我永远不会设置默认值,这不符合 setter 评估中的要求。问题是,是否有最佳实践或者无论如何都没有关系?一个或另一个的优势是什么(因为我找不到)?有没有参考,这个问题在哪里解决?

到目前为止,我遇到过来自许多不同开发人员的代码,他们使用一种或两种方式......

标签: c#constructorproperties

解决方案


您可以同时使用两者。但我更喜欢第一个。为什么?因为属性使用的值是直接赋值的。对于上面的 C# 6,您可以直接在属性中使用默认值,而无需使用构造函数。

public class Person
{
    public string FirstName { get; set; } = "<first_name>";
    public string LastName { get; set; } = "<last_name">;
}

推荐阅读