可能重复:
C# 中的字段和属性有什么区别?
我经常需要在我的类/子类层次结构中创建受保护的变量。但是,我不断看到其他使用简单的 get/set 属性而不是变量的实现。
由于没有需要在 getter 或 setter 中执行的代码,并且它们的范围始终受到保护,所以有区别吗?
protected int foo1;
// vs
protected int foo2{ get; set; }
我知道前者的优点是您可以直接用一个值对其进行初始化,但我想知道是否还有其他需要注意的事情/限制。
注意:永远不会有 getter/setter 中有代码的情况。这些只是内部计算指标的占位符,性能至关重要(甚至到毫秒级),这让我认为第一个更好,因为它完全绕过了 getter/setter。