Cadena.Vacío versus

Cadena.Vacío versus

No es diferente.

http://msdn.microsoft.com/en-us/library/system.string.empty.aspx:


Según Brad Abrams:

Actualización (3/6/2015):

Se ha mencionado en los comentarios que la cita anterior de 2003 ya no es cierta (supongo que esto se refiere a la afirmación de que "" realmente crea un objeto). Así que acabo de crear un par de programas de consola simples en C# 5 (VS 2013):

class Program
{
    static void Main()
    {
        // Outputs "True"
        Debug.WriteLine(string.IsInterned(string.Empty) != null);
    }
}

class Program
{
    static void Main()
    {
        // Outputs "True"
        Debug.WriteLine(string.IsInterned("") != null);
    }
}

Esto demuestra que tanto "" y String.Empty ambos están internados cuando su código comienza a ejecutarse, lo que significa que para todos los propósitos prácticos son iguales..

La parte más importante del comentario de Brad es esta:

Esa es la conclusión. Elegir entre "" y String.Empty no es una decisión basada en el rendimiento. No pierdas mucho tiempo pensando en ello. Elija según lo que encuentre más legible o cualquier convención que ya se esté utilizando en su proyecto.


En su mayor parte String.Empty is identical to "" sin embargo, generalmente encuentro que es más fácil de usar String.IsNullOrEmpty(str) en lugar de tener que comparar str == "" || str == null Además, si está en .NET 4.0 String.IsNullOrWhiteSpace(str) cubre aún más casos y es, con diferencia, el mejor.