相关疑难解决方法(0)

为什么没有人接受C#中的公共字段?

似乎每个C#静态分析器在看到公共字段时都想抱怨.但为什么?当然,有些情况下公共(或内部)领域就足够了,拥有它get_set_方法的财产是没有意义的吗?如果我确定我不会重新定义该字段或添加它(副作用是坏的,对吧?) - 不应该是一个简单的字段就足够了怎么办?

c# field properties public

30
推荐指数
4
解决办法
6619
查看次数

有没有琐碎的财产保存你的培根?

那里有很多建议你不应该公开地公开你的字段,而是使用普通的属性.我一遍又一遍地看到它.

我理解这些论点,但在大多数情况下我认为这不是一个好建议.

有没有人有一个真正重要的时间的例子?在写一个琐碎的财产时,将来可能会有一些重要的事情(或者当没有使用它时会让他们陷入真正的麻烦)?

编辑:DataBinding参数是正确的,但不是很有趣.DataBinding代码中的一个错误是它不接受公共字段.因此,我们必须编写属性来解决该bug,而不是因为属性是明智的类设计选择.

编辑:要清楚,我正在寻找现实世界的例子,而不是理论.真正重要的时刻.

编辑:在setter上设置断点的能力似乎很有价值.为调试器设计我的代码是不幸的:我宁愿调试器变得更聪明,但考虑到我们的调试器,我将采用这种能力.好东西.

.net c#

19
推荐指数
5
解决办法
2679
查看次数

为什么我应该使用自动实现的属性而不是字段?

在这两者之间:

有财产:

class WithProperty
{
    public string MyString {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

有了字段:

class WithField
{
    public string MyString;
}
Run Code Online (Sandbox Code Playgroud)

显然我应该选择第一个.为什么?

我听说过这里的观点是允许接口更改,但如果我有第二个,并将其更改为第一个,则不需要更改其他代码.重新编译时,所有内容都将指向该属性.

我错过了一些重要的东西吗?

.net c#

13
推荐指数
2
解决办法
278
查看次数

C#3.0自动属性,为什么不直接访问该字段?

使用在类的属性中获取/设置的新方法,如:

public string FirstName {
        get; set;
    }
Run Code Online (Sandbox Code Playgroud)

为什么不简单地将属性FirstName公开而没有访问者?

properties c#-3.0

12
推荐指数
2
解决办法
2528
查看次数

标签 统计

c# ×3

.net ×2

properties ×2

c#-3.0 ×1

field ×1

public ×1