- Когда мне следует переопределить метод ToString() с помощью свойств класса и когда с полями?
- Есть ли только один способ, действительный или оба?
Если оба варианта в порядке, в каких случаях мы должны использовать каждый из способов?Чтобы переопределить метод ToString() со свойствами или полями?
public override string ToString() { return String.Format("{0},{1}", this.field1, this.field2); // ..or return String.Format("{0},{1}", this.Property1, this.Property2); }
Пожалуйста, помогите ???
Что это связано с изменением значений? Реализация, использующая свойства, использует только геттер, и возможно, что свойства доступны только для чтения. – juharr
@juharr, что произойдет, если свойства заданы с помощью конструктора, а затем изменены позже? Это изменило бы ожидаемое поведение и было бы невозможно с помощью полевого подхода (без отражения). Возможно, свойства НЕ читаются только ... в вопросе не хватает деталей.Речь идет о правильном инкапсулировании поведения и предотвращении непреднамеренных побочных эффектов. Это может быть или не быть релевантным, поэтому я вызвал его. –
ОК, поэтому из всех ваших ответов я понимаю, что оба пути на самом деле возможны, но с точки зрения выбора в специальном случае полностью зависит от средств функциональности класса в программе. Спасибо за внимание к этой проблеме! Я не могу голосовать за лучший ответ, так как я здесь слишком новый. Привет! – CSharp4eto