【发布时间】:2017-12-09 22:22:18
【问题描述】:
首先只是为了澄清和避免不必要的重复标记,这个问题不是与this one 的重复,既不是this other one 的重复,也不是我已经搜索过的其他问题。为什么?他们都在谈论具有经典 C# 的“属性”的 public 字段或私有字段。
我的问题是我为什么要写这样的东西(Public Properties)
class myClass{
public int AValue{get; set;}
}
当我可以改写时(私有字段 不涉及任何属性)(只是经典的旧 C++ 风格的写法)
class myClass{
private int aValue;
public int getValue{ return aValue;}
public void setValue(int value){ aValue=value;}
我摸不着头脑,阅读了许多资源、答案和问题,但没有人回答这个问题。他们都在谈论相对于公共领域的优势(我没有问过)或者新的自动属性相对于旧的优势(我也没有问过)。
我想我的问题是为什么 C# 不使用在 Java 或 C++ 中运行良好的相同编写方式。我看不出有什么优势。我非常感谢有人教我这个优势,因为 afaik 没有写在其他任何地方。 (甚至在我的 C# 书籍中都没有)
【问题讨论】:
-
我建议 Properties 比创建自己的适当方法来完成完全相同的事情更优雅和直观。编写开发平台的标准代码有助于使其更易于维护。然而,这一切只是我的看法。这个问题没有普遍正确的答案,因为任何答案都将主要基于意见。这使得这个问题离题了。
-
考虑阅读此内容:stackoverflow.com/questions/22900456/…。简而言之,受 VB 影响的 C# 属性是一种语法糖,可以节省击键并避免像 Java 或 C++ 那样经常键入“getX”和“setX”。
标签: c#