2012-04-09 20 views
6

A veces, cuando llamo al método .ToString() de una clase, devuelve el nombre completo de la clase. Pero para algunos class/struct's (como Int32) devuelve una cadena correspondiente al objeto (valor del entero). ¿Esto significa que la clase Int32 prevalece sobre el método ToString(), y las clases que devuelven nombres totalmente calificados no lo anulan, sino que simplemente llaman al método ToString() de base (Object)? ¿La implementación Object.ToString() simplemente devuelve el nombre completo de la clase?¿Cómo funciona el método .ToString()?

+6

Sí, tienes razón. – MarcinJuraszek

+0

¿Cuál es la pregunta? ¿Es "es mi entendimiento correcto?" –

Respuesta

17

A veces, cuando llama al método ToString devuelve el nombre completo del tipo de tiempo de ejecución del objeto que recibe la llamada.

Correcto.

embargo, para algunos tipos, como System.Int32ToString, devuelve el valor del receptor convierte en una cadena.

Correcto.

¿La estructura System.Int32 anula el método ToString?

Sí.

hacer otras cuyos tipos ToString métodos devolver el nombre de tipo totalmente cualificado no anulación ToString?

Ese es probablemente el caso, sí. Por supuesto, podrían anular el método y hacer que el método predominante haga exactamente lo mismo que el método de la clase base, pero eso sería un poco inútil.

lo tanto, en esos casos, llamando ToString sólo llama a la implementación de System.ObjectToString, que devuelve nombre completo?

Correcto.

Parece que tiene una comprensión sólida de cómo funciona esto. Mi única corrección sería notar que System.Int32 es struct, no clase.

+0

He editado ahora gracias – deen

+5

@ Ala: ¿Me estás preguntando por qué alguien votó negativamente por tu pregunta? Probablemente porque está respondido ** en la página de documentación del método ToString **. Si tiene alguna pregunta sobre un método, intente leer la documentación de ese método; si no responde su pregunta, intente buscar en la web o en este sitio para obtener una respuesta. En lugar de pedirle a las personas que se tomen un tiempo fuera de su ocupado día para responder a su pregunta, primero haga un nivel básico y mínimo de investigación. –

+0

No te conseguí. Usted respondió cada línea, ¿verdad? Esta fue la answar que esperaba – deen

8

¿Has intentado buscar la respuesta a tu pregunta?

http://msdn.microsoft.com/en-us/library/system.object.tostring.aspx

ToString es el método de formateo importante en el Marco .NET. Es convierte un objeto a su representación de cadena para que sea adecuado para su visualización. (Para obtener información sobre el formato de apoyo en el Marco .NET , consulte Formato de Tipos.)

La implementación predeterminada del método ToString devuelve el totalmente nombre calificado del tipo del objeto, como el siguiente ejemplo espectáculos.

porque el objeto es la clase base de todos los tipos de referencia en el marco .NET , este comportamiento es heredado por los tipos de referencia que no lo hacen reemplazar el método ToString. El siguiente ejemplo lo ilustra. Define una clase llamada Object1 que acepta la implementación predeterminada de todos los miembros Object. Su método ToString devuelve el nombre de tipo completo del objeto .

0

Pocos puntos con respecto al método ToString() en C#. método

  1. ToString() se define en la clase System.Object base y por lo tanto su disponible para todos los tipos y parámetros a utilizar.

  2. La implementación predeterminada de ToString() proporcionada por la clase base system.object le dará el nombre completo del tipo que incluye el espacio de nombres.

  3. Si no desea la implementación predeterminada, puede anular el método ToString(). Sí, el método ToString() es reemplazable. ¿Y dónde lo anulas? Lo anulas en la clase donde no quieres su implementación predeterminada.

Cuestiones relacionadas