2010-09-26 26 views

Respuesta

11

Para responder a su pregunta en el título: no.

De acuerdo con .NET Reflector, llamando al .ToString() o .ToString(IFormatProvider) en un string, solo se devuelve.

+8

También de acuerdo con [MSDN] (http://msdn.microsoft.com/en-us/library/8tc6ws5s.aspx): "Devuelve esta instancia de Cadena; no se realiza ninguna conversión real". – NullUserException

+0

@NullUserException - gracias. No sabía que en realidad estaba en la documentación. –

0

Es lo suficientemente inteligente (al menos in Mono):

public override String ToString() 
{ 
return this; 
} 
2

Usted puede probar esta hipótesis con una simple afirmación:

using System.Diagnostics; 

void ToStringHypothesis() 
{ 
    string myString = "Hello!"; 
    string otherString = myString.ToString(); 

    Debug.Assert(Object.ReferenceEquals(myString, otherString)); 
} 

Dado que las cadenas son inmutables en .NET, la aplicación de sensical String.ToString() implementación es devolver una referencia a sí mismo.

Cuestiones relacionadas