Saltar al contenido

Anular el método .ToString c#

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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *