一尘不染

C#3.0自动属性-是否有用?[关闭]

c#

注意:这是在我开始使用C#时发布的。 凭借2014年的知识,我可以真正地说出,自动属性是C#语言有史以来最好的事情之一。

我习惯于使用私有字段和公共字段在C#中创建属性:

private string title;
public string Title
{
    get { return title;  }
    set { title = value;  }
}

现在,在.NET 3.0中,我们获得了自动属性:

public string Title { get; set; }

我知道这更多是一个哲学/主观的问题,但是除了为每个字段保存五行代码外,是否有任何理由使用这些自动属性?我个人的抱怨是这些属性对我隐藏了东西,我也不是黑魔法的忠实拥护者。

实际上,隐藏的私有字段甚至不会显示在调试器中,考虑到get / set函数什么都不做的事实,这是可以的。但是,当我想实际实现一些getter /
setter逻辑时,无论如何我都必须使用私有/公共对。

我看到的好处是,我节省了很多代码(一条代码与六行代码),而不会在以后失去更改getter /
setter逻辑的能力,但是话又说回来,我可以通过简单地声明一个公共字段“ Public string Title”来做到这一点。 {获取;组;
}块,从而节省更多代码。

那么,我在这里想念什么?为什么有人实际上要使用自动属性?


阅读 155

收藏
2020-05-19

共1个答案

一尘不染

我们一直在堆栈溢出中使用它们。

您可能也对“ 属性与公共变量”的讨论感兴趣。恕我直言,这确实是对它的反应,为此,它很棒。

2020-05-19