【发布时间】:2012-10-05 05:42:57
【问题描述】:
也许这是一个愚蠢的问题,但是,我是 C# 的新手(更多来自 Java 背景)并且对我看到的关于属性的 getter 和 setter 的不同示例感到困惑。
在某些情况下,代码如下所示:
private string _something;
public string Something
{
get { return _something; }
set { _something = value; }
}
但是,在其他示例中,他们不使用此支持成员,因此更像这样:
public string Something { get; set; }
我并没有真正看到使用这些支持变量 (_something) 的好处,除非您当然对变量的设置有一些复杂的逻辑。
我正在使用后一种方法编写程序,但想检查一下我没有遗漏任何内容。
有人可以简单解释一下为什么人们选择做前者吗?是不是更“好的做法”?
非常感谢!
【问题讨论】:
-
我猜后者是原型定义,就像java中的
interface。 -
@SuzanCioc 不。是一样的 - 但是支持字段是由 C# 编译器为您实现的。
-
啊不,我错了。这是具有隐式支持变量的新语法。
-
@Reed 是的,我认为是正统的。
-
感觉就像在Java中一样:您可以在子类中覆盖简单的getter或setter逻辑。如果您只有
Something成员,您将无法做到。