<p>In .NET, what is the difference between <code>String.Empty</code> and <code>""</code>, and are they interchangable, or is there some underlying reference or Localization issues around equality that <code>String.Empty</code> will ensure are not a problem?</p>

In .NET prior to version 2.0,
```
""
```
creates an object while
```
string.Empty
```
creates no object
ref
, 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.
See the
.NET specification for more information
.