Después de de esta extensa recopilación de datos solucionamos este conflicto que presentan muchos los usuarios. Te dejamos la solución y nuestro deseo es resultarte de mucha apoyo.
Solución:
Estás devolviendo un string eso solo dice la frase _name + _number + _date + _salary
.
Lo que probablemente querías hacer es construir un string utilizando esos campos. Si los quisieras todos juntos, Concat funcionaría, pero sería muy ilegible.
public override string ToString()
return String.Concat(_name, _number, _date, _salary);
Sin embargo, lo que sería mejor es usar Formato e incluir etiquetas con los valores
public override string ToString()
return String.Format("Name:0, Number:1, Date:2, Salary:3",_name, _number, _date, _salary);
Si está usando C# 6 o más reciente, puede usar el siguiente formato más limpio
public override string ToString()
return $"Name:_name, Number:_number, Date:_date, Salary:_salary";
Que es exactamente la misma lógica que la anterior String.Format
versión.
La razón por la que la gente anula el ToString()
método es tener un valor predeterminado string representación de su objeto, generalmente para mostrar al usuario o en un registro o consola, como esta:
Console.WriteLine(yourClassObject);
Si no anula la ToString()
entonces su implementación predeterminada es devolver el nombre completo de su objeto, así:
YourNamespace.YourClassName
Cambiando la implementación heredada (de System.Object
), entonces puede hacer una representación más agradable (léase: más bonita), como esta:
public override string ToString()
return String.Format("This instance of my object has the following: Name = 0, Number = 1, Date = 2, Salary = $3", _name, _number, _date, _salary);
Más bien intenta algo como
public override string ToString()
return String.Format("Name : 0, number 1, date 2, salary 3",_name,_number,_date,_salary);
Pero necesita ser parte de la clase.
asi que
class Employee
private string _name;
private string _number;
private int _date;
private int _salary;
.....
public override string ToString()
return String.Format("Name : 0, number 1, date 2, salary 3",_name,_number,_date,_salary);
Eche un vistazo al método String.Format
Reemplaza cada elemento de formato en un especificado string con el texto equivalente del valor de un objeto correspondiente.
Reseñas y calificaciones
Si estás contento con lo expuesto, tienes la libertad de dejar un ensayo acerca de qué te ha parecido esta crónica.