¿"hello".ToString()
produce una nueva cadena o es lo suficientemente inteligente como para devolver una referencia al mismo objeto?¿ToString() produce una nueva cadena cuando se usa en cadenas?
9
A
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.
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
- 1. volver nueva cadena vs .ToString()
- 2. ToString en cadena nula
- 3. unboxing o toString() se usa en sysout en java
- 4. Interpolación de cadenas cuando no se utiliza una cadena literal
- 5. Concatenación de cadenas con o sin .ToString()?
- 6. ¿Cómo se usa una cadena como índice?
- 7. Detectar cuando se conecta una nueva pantalla
- 8. ¿Cómo se usa `to_sql` en AREL cuando se usa` average() `?
- 9. Destructor no llama cuando se produce una excepción
- 10. donde se encuentra una nueva línea en una cadena:
- 11. Ruby on Rails: cómo desinfectar una cadena para SQL cuando no se usa find?
- 12. ¿Cómo se usa createElement para crear una nueva tabla?
- 13. ¿Cómo usar comillas dobles en una cadena cuando se usa el símbolo @?
- 14. Nuevo mando a distancia cuando se empuja una nueva rama
- 15. Delphi: cuenta el número de veces que se produce una cadena en otra cadena
- 16. cuando se usa ftplib en python
- 17. error se produce cuando intento "todos" método en el DataMapper
- 18. nueva línea en una cadena de varias líneas
- 19. ¿Por qué string.Replace ("X", "Y") funciona solo cuando se asigna a una nueva cadena?
- 20. Codificación cartográfica cuando se usa Ajax? JQuery
- 21. Spring Batch SkipListener no se llama cuando se produce una excepción en el lector
- 22. ¿Por qué .ToString() en una cadena nula causa un error nulo, cuando .ToString() funciona bien en una int nullable con valor nulo?
- 23. C#: cadena pública pública ToString() VS cadena de anulación pública ToString()
- 24. Cómo establecer un valor en NULL cuando se usa Zend_Db
- 25. ClassCastException se produce en onRestoreInstanceState
- 26. La expansión de cadenas no funciona en PowerShell cuando se usa Invoke-Command en una computadora remota
- 27. Separar una cadena en cadenas de elementos
- 28. SQL Server usa una CPU alta cuando busca dentro de las cadenas nvarchar
- 29. ¿Por qué se usa ToArray() cuando se usa cadena.Únete con una lista <string>?
- 30. dividir una cadena en diferentes cadenas
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
@NullUserException - gracias. No sabía que en realidad estaba en la documentación. –