In .NET, what is the difference between String.Empty
and ""
, and are they interchangable, or is there some underlying reference or Localization issues around equality that String.Empty
will ensure are not a problem?
In .NET prior to version 2.0, ""
creates an object while string.Empty
creates no objectref, which makes string.Empty
more efficient.
In version 2.0 and later of .NET, all occurrences of ""
refer to the same string literal, which means ""
is equivalent to .Empty
, but still not as fast as .Length == 0
.
.Length == 0
is the fastest option, but .Empty
makes for slightly cleaner code.