- 什么时候应该用类属性覆盖 ToString() 方法,什么时候用字段覆盖?
- 只有一种方法有效还是两种方法都有效?
如果两者都可以,分别在什么情况下使用?
public override string ToString() { return String.Format("{0},{1}", this.field1, this.field2); // ..or return String.Format("{0},{1}", this.Property1, this.Property2); }
请帮忙???
最佳答案
两者皆可。
但是,需要考虑的一件事是属性更普遍地被认为是“面向公众的”,而字段通常被大多数 C# 开发人员认为是“私有(private)的”。
因此,如果您希望能够对未直接修改的内部值调用 .ToString()
,请使用字段(并保持私有(private))。如果您对它们进行外部修改以及通过 .ToString()
返回那些外部修改的值没有问题,请使用属性。
最后,如果您需要在返回属性值之前对其执行任何类型的额外“逻辑”,那么最好使用属性,因为您可以在属性的 getter
中修改它。
关于c# - 要用属性或字段覆盖 ToString() 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37140989/