İnternette araştırdığım bir kodda, bir string değişkenine şu şekilde atama yapıldığını gördüm,
string reverse = String.Empty;
daha önce karşılaşmadığım için internetten ne olduğuna baktım. Şimdi de sizlere bu edindiğim bilgileri aktarmak istiyorum.
String.Empty veya “” kullandığımız zaman aynı boş string değerini elde etmemize rağmen aralarında bir fark vardır.
- String.Empty ile aslında bellekte herhangi bir nesne yaratmayıp sadece String altındaki Empty alanına (field) a referans vermektedir.
- Sting a = “”; ile ise boş değerli (empty) yeni bir string nesnesi bellekte “yaratılmış” olmaktadır.
String a = null; da yine String.Empty gibi uzunluğu “sıfır” olan bir stringi represent (temsil) etmekte olup kendisine “null” değeri atanmış olup, henüz kendisinin refere ettiği bir string örneklemi bulunmadığını belirtmektedir. Not: Hatta .NET Framework bu iki durumu aynı method ile geliştiricilerin kontrol edebilmesi için String.IsNullOrEmpty methodunu barındırmaktadır.
Kaynak: Onur Güzel’in yanıtından alıntılanıp düzenlenmiştir. https://social.msdn.microsoft.com/Forums/tr-TR/28d5f5a0-bb39-4bc1-aace-6f18976964fa/stringempty-quotquot-null-arasndaki-fark-nedir?forum=csharptr