c#私有的它们是否被使用/有意义
本文关键字:有意义 是否 | 更新日期: 2023-09-27 18:16:06
我一开始是c#爱好者,在我看来属性应该总是公开的。私有财产没有意义。会吗?
将:
private string propertyOne {get; set;}
等于:
public string propertyOne {private get; private set;}
是的,私有属性是有意义的,特别是在你想在getter/setter中实现逻辑的情况下。你可能只希望在类中访问它们(因此它们是私有的),但你仍然希望将getter/setter逻辑封装在一个地方。
打印的两行代码有区别。反映公共属性的人不会看到第一个,但他们会看到第二个,即使他们不能调用getter/setter。
使用Property的想法是封装而不仅仅是将原始变量呈现给'外部世界'。这样,您还可以在访问器中添加额外的逻辑。
所以不,纯私有属性不会是通常的用例。
是的,这两段代码是等价的。我从来没有创建过带有自动getter/setter的私有属性。看起来没什么用。我在getter的实际实现中使用了私有属性。私有get方法(或属性getter)可能很有用。
在你的问题中,是的,后者在功能上等于前者,但这样实现它是没有意义的。
我倾向于使用
public string propertyOne {get; private set;}
因为有时我希望它公开可用,但只有它存在的类能够设置值。但大多数情况下,当你想将其他逻辑封装到getter和setter中以执行其他功能时,也会使用它。