1
5
字段和属性除了语义外还有很多不同之处。
|
2
3
“公正的语义”在我看来总是矛盾的。是的,它改变了代码的含义。不,我不想用“只是”这个词。 头等舱有公共场地。第二个类具有公共属性,由私有字段支持。它们不是一回事:
|
3
2
在这种情况下,是的,它主要是语义。它对反射等等有影响。 但是,如果您希望进行更改,以便在设置MyProperty时触发事件,例如,您可以轻松地修改后者以执行该操作。前者不能,也可以在接口中指定后者。 由于沿着物业路线走下去几乎没有什么区别,但有几个潜在的优势,我认为你应该一直沿着物业路线走。 |
4
0
第一个字段只是公共字段,第二个字段是所谓的自动属性。自动属性由C编译器更改为带有支持字段的常规属性。 公共字段和属性在C语法中是相等的,但是在IL中它们是不同的(最近在德国论坛上读到这个,不能给你来源,抱歉)。 马蒂亚斯 |
5
0
最大的区别是,您可以向属性添加访问修饰符,例如这样
对clr字段的访问和属性也是不同的。因此,如果您有一个字段,并且希望稍后将其更改为属性(例如,当您希望向setter添加代码时),则接口将发生更改,您需要重新编译访问该字段的所有代码。有了自动产权,你就没有这个问题了。 |
6
0
我假设您编写的代码不是第三方开发人员调用的代码,第三方开发人员可以在您更改代码时重新编译代码。 (例如,您不为编写自己的.NET框架的Microsoft工作,也不为编写控制工具kip的DevExpress工作)。请记住,Microsoft的.NET Framework编码标准是为编写框架的人员制定的,如果您不为第三方开发人员编写框架,则会试图避免许多甚至不是问题的问题。 第二种情况是定义了一个适当性,这样做的唯一真正好处是数据绑定不能与字段一起工作。然而,在使用礼节方面有一个很大的政治优势,从其他查看代码的开发人员那里得到的无效抱怨要少得多。 礼仪的所有其他优势(在其他问题的答案中有很好的解释)目前对您不感兴趣,因为任何使用代码的程序员都可以在以后根据需要将字段更改为礼仪,然后重新编译解决方案。 然而,你不太可能因为使用礼仪而被堆积起来,所以你也总是使用公共礼仪,而不是字段。 |
Tooleh · 只有第一行上的按钮在表中起作用 6 年前 |
Ahmad · 如何使用C#在unity中避免列表中的重复值 7 年前 |
IPS · 如何知道类型结构属性的偏移值? 7 年前 |
Shakeel Hussain Mir · 阻止刷新锚点标记单击 7 年前 |
Nag Arjun Reddy · 如何在循环中使用集合 7 年前 |