C# property or a simple variable, code style
本问题已经有最佳答案,请猛点这里访问。
我想知道,在C中,我可以这样声明(我经常从代码评审中看到这样的风格):
1 2 3 4 5 6 7 8 9 10 11 | string myVarName { get { return myVarName; } set { myVarName = value; } } |
但许多人认为,这比仅仅宣布"不属于财产"要好得多。
我有时会感到困惑,因为我经常在代码清单中看到这样的样式。
为什么更好?属性
或者我可以通过表演赢得比赛?
至于代码样式,我更喜欢简单的变量声明而不是属性样式。
至于属性,我只能看到一些默认操作/触发器的最佳优势。例如:我需要从传入值或类似的smth将半值存储在属性中…
也许我一点都不对。我说得对吗?
谢谢!
实际上,这与编码风格无关,您应该以最有利于您的方式使用属性。
我使用这样的属性:
1 | public string Name {get;set;} |
当我不需要任何特殊的实现时
我这样使用它们:
1 2 3 4 5 6 7 8 9 10 11 | public string Name { get { return name; } set { name = value.toLower(); } } |
当我需要在分配值之前对它做一些事情时。
我也鼓励你使用属性,不是因为它"更好",而是因为它更灵活。
想一想你刚刚使用了公共变量。如果需要添加某种验证,则需要更新实例化要修改的类的每个类。对于属性,您不需要任何外部更改。
至于性能问题,不用担心。我不认为你会获得任何性能提升,避免属性,即使你这样做,它将是如此微小,这是不值得的,因为你正在丢弃一个真正有价值的功能,你可能需要在未来,可能会非常痛苦的更新。