Вы можете попытаться отформатировать вывод в хорошем формате. (не проверено, хотя)
public override string ToString()
{
return string.Format("Name: {0} Number: {1:n0} Date: {2:yyyy-MM-dd} Salary: {3:n2}", _name, _number, _date, _salary);
}
существует множество целей, переписывающих .ToString (), в зависимости от контекста. например,
действительно зависит от контекста вашего необходимо. вы можете найти некоторые хорошие практики, чтобы следить за ними в Интернете - верьте, что в Интернете много ресурсов.
Вы должны понимать суть этого в функциях против функции стрелки. Функции стрелок это всегда будет экземпляр объекта, к которому прикреплена функция. В обычных функциях это объект, к которому прикреплена вызывающая функция
class MyClass {
multiplyer = 2;
x = [1,2,3].map(this.double);
doubleArrow = val => this.multiplyer * val; // this is always what you expect it to be, the instance of this object
y = [1,2,3].map(this.doubleArrow);
double(val) {
return this.multiplyer * val; // this will change depending on the function that calls it
}
}
Судя по моим тестам, это не так.
blockquote>Распространенная ошибка - ошибка
this
. Пример, который потерпит неудачу:class Foo { x = 123 returnX() { return this.x; } } const fail = [new Foo()].map(foo.returnX);
Исправить
Использовать функцию стрелки:
class Foo { x = 123 returnX = () => { return this.x; } } const pass = [new Foo()].map(foo.returnX);
Подробнее
- Машинописание функций стрелок
- Бесплатное видео, которое я сделал на
this
: https://www.youtube.com/watch?v=tvocUcbCupA