有没有理由不使用受保护的属性?
我的意思是代替使用它:
public abstract class Foo { protected Bar { get; private set; } }
使用这个:
public abstract class Foo { private Bar _bar; protected Foo(Bar bar) { _bar = bar; } protected GetBar() { return _bar; } }
由于您使用C#标记标记了此问题,因此我严格建议使用第一种方法.这就是属性的用途.
仅当每次调用它时返回的值可能不同时使用方法,无论其状态如何.例如,DateTime.Now是一个错误,应该是一个方法.
有关更多详细信息,请参阅属性Usage Guidelines on MSDN.旁注,令人惊讶的是,自Framework 1.1以来,他们没有必要对其进行更改.
Usage Guidelines on MSDN