我应该在我的C#程序中使用属性还是应该使用get/set访问器?

Kre*_*dns 4 c# coding-style properties

当我遇到这个声明时,我正在阅读Rob Miles的一本名为C#Yellow Book的书:

程序员喜欢新的闪亮玩具.他们非常热衷于使用语言功能来炫耀.属性可能有点像这样.在考虑属性与get和set方法时,我更喜欢老式的get和set方法,因为你知道你在哪里使用它们.另一方面,如果以正确的方式使用,我可以看到属性可以使生活更轻松.

我不太确定他的意思是什么.你们有什么建议?MS建议什么?

Jar*_*Par 18

我认为你应该考虑一些非编程建议

在罗马做到入乡随俗.

.NET具有根植于其所有库,设计器和代码生成器的属性.它几乎是平台不可分割的一部分.如果您选择使用get/set访问器而不是普通属性,那么您将创建一个库,其外观与其他程序员所期望的完全不同.

使用get/set访问器只会增加创建与各种工具不兼容的代码的机会.例如,有许多工具可以使用特殊的案例属性和字段,并为它们提供特殊功能.您将拥有等效的构造但没有工具支持.


小智 8

几年前,我把这本书的一部分写成了一个转到C#的Java程序员.我想我会在下一个版本中再次访问该文本并使其更清晰一些.

如果你想确保你的类的用户知道某些代码在使用某个东西时会运行,那么将它放入一个方法就可以使它显式化.此外,使用方法允许您返回错误条件而不必抛出异常.没有性能,因为编译器无论如何都会将属性转换为方法.

我在我编写的代码中使用了很多属性,特别是对于像state这样的东西.我从来没有真正提倡不使用属性,更确保在正确的情况下使用正确的东西.


Joh*_*ers 5

我不知道Rob Miles是谁,但如果你的报价是准确的,那么我已经失去了对他的尊重.

.NET中的所有内容都使用属性.如果您的代码不使用属性,那么它将是唯一没有的代码.

  • 如果我不得不猜测,引用来自1.0版本(即7年前)发布的书籍.那时,如果你是一个顽固的Java程序员转换过来,那就更容易理解了. (4认同)