String.Empty o ""

19/07/2008 - 14:34 por Carlos | Informe spam
Hay alguna diferencia en usar en una expresion: String.Empty o "" ?

Preguntas similare

Leer las respuestas

#6 Toful
20/07/2008 - 01:03 | Informe spam
Según ciertos blogs que he leído es siempre mejor utilizar
"string.empty" por los siguientes motivos.

1) Utilizar "" implica realizar "cambios internos" en tu objeto
string. ¿Qué ocurre si un objeto string que guarda, por ejemplo, un
nombre como "José", lo cambiamos un ponemos otro nombre, como
"Francisco"? La clase string automáticamente e internamente reserva
más memoría para almacenar un contenido mayor. Al usar, string.empty,
el objeto simplemente no ha reservado nada de memoria. Al utilizar ""
el objeto se instancia (porque se usa de él y empieza a ocupar
memoria, poca pero reserva)
2) Relacionado con el primer punto. A más reserva de memoria, más
lento ira mi aplicación porque la memoria es un recurso compartido.
Por lo que if (s1=="") es más lento que s1.Equals(string.Empty).
Aunque parece que la forma más rápida de comparar si un string esta
vacío es utilizar length==0.
3) Más velocidad por string.Empty es estático

Espero haber resuelto tus dudas,

Cristóbal Tello
http://www.usuaris.tinet.cat/ctg/
#7 Carlos
20/07/2008 - 15:33 | Informe spam
Ok, lo tomare en cuenta y gracias tambien por la explicacion.


"Toful" wrote in message
news:
Según ciertos blogs que he leído es siempre mejor utilizar
"string.empty" por los siguientes motivos.

1) Utilizar "" implica realizar "cambios internos" en tu objeto
string. ¿Qué ocurre si un objeto string que guarda, por ejemplo, un
nombre como "José", lo cambiamos un ponemos otro nombre, como
"Francisco"? La clase string automáticamente e internamente reserva
más memoría para almacenar un contenido mayor. Al usar, string.empty,
el objeto simplemente no ha reservado nada de memoria. Al utilizar ""
el objeto se instancia (porque se usa de él y empieza a ocupar
memoria, poca pero reserva)
2) Relacionado con el primer punto. A más reserva de memoria, más
lento ira mi aplicación porque la memoria es un recurso compartido.
Por lo que if (s1=="") es más lento que s1.Equals(string.Empty).
Aunque parece que la forma más rápida de comparar si un string esta
vacío es utilizar length==0.
3) Más velocidad por string.Empty es estático

Espero haber resuelto tus dudas,

Cristóbal Tello
http://www.usuaris.tinet.cat/ctg/
#8 Hernan
22/07/2008 - 13:02 | Informe spam
Mostrar la cita
Es verdad que "" crea un objeto, pero la diferencia es mínima (la
velocidad
de creación de objetos de la máquina virtual de .NET es comparable a
C o C++). Encontrarás mas diferencia si usas string.Equals en vez de
=por lo que la comparación sería:
xxx.Equals(string.Empty)

Pero como han dicho antes lo mas performante es comparar por longitud
0.
Es lo que recomienda Microsoft y es lo que informa FxCop cuando
analiza
tu código.

En mi opinión, en estas situaciones lo mejor es acostumbrarse a
utilizar
unas pocas "construcciones idiomáticas" que sean fáciles de entender
para cualquiera que lea el código (la hora del programador es mas
costosa
que la de la CPU). En este caso particular uso solo dos:

variable == "" o variable.Length == 0

dependiendo de las ganas de micro-optimizar que tenga.

-Hernán.
#9 RFOG
22/07/2008 - 13:12 | Informe spam
On Tue, 22 Jul 2008 13:02:37 +0200, Hernan wrote:

Mostrar la cita
A veces, cuando has fragmentado mucho la memoria en C++ (por ejemplo,
creando y destruyendo pequeños objetos sin mucho concierto, casi lo
habitual si no te andas con ojo), la asignación de memoria en .NET es
bastante más rápida que en C++ si dejas tiempo al recolector de basura a
que haga su trabajo en los tiempos muertos.


Mostrar la cita
Microsoft Visual C++ MVP
==Mi blog sobre programación: http://geeks.ms/blogs/rfog
Momentos Leves: http://momentosleves.blogspot.com/
Cosas mías: http://rfog.blogsome.com/
Libros, ciencia ficción y programación
El poder de moverse a sí mismo es la esencia del alma.
#10 Carlos
22/07/2008 - 15:11 | Informe spam
Pero, el compilador no deberia ser mas habil y convertir todo a una misma
forma standard ? o lo hace?

"RFOG" wrote in message news:
Mostrar la cita
Ads by Google
Search Busqueda sugerida