在内部使用属性有什么好处?

dlr*_*as2 5 c# getter performance encapsulation properties

当从类外部访问成员时,封装显然是有用且必不可少的,但是当在内部引用类变量时,调用其私有成员或使用其getter更好吗?如果你的getter只是返回变量,那么性能是否存在差异

Dan*_*olo 9

不应该有显着的性能差异,并且你坚持使用属性的原因是因为这是封装的全部要点.它使这些私有成员的所有访问保持一致和受控.因此,如果您想要更改属性getter/setter,您不必考虑"我是否需要在我决定直接访问私有成员的地方复制相同的功能?"


Tho*_*que 7

直接访问字段或使用getter通常不会产生很大的不同,除非你的getter执行一些延迟初始化或其他处理.所以它取决于getter的功能,但我的经验法则是在特定情况下始终使用getter.

要为字段分配值,请不要忘记setter通常包含验证代码或引发事件.在这种情况下,您应该始终使用setter.