SORU
1 Temmuz 2014, Salı


String.Biçim Değişkeni Hariç Null

Kod aşağıda Argümanı Null özel Durum oluşturur

var test = string.Format("{0}", null); 

Ancak, bu geri boş bir dize verecektir

string something  = null; 
var test = string.Format("{0}", something); 

Sadece merak kod, ikinci parça istisna değil neden bilmek. Bu bir hata mı ?

CEVAP
1 Temmuz 2014, Salı


Fark kodun ilk parça kodu ikinci parça string.Format(string, object) arama ise string.Format(string, object[])... arıyor.

null geçerli bir argüman için ikinci yöntem (sadece beklenen değer ilk yer tutucu) değil, ilk nerede null olur geneldediziyer tutucular). Özellikle NullArgumentException atıldığında belgelerine karşılaştırın:

string.Format(string, object):
biçiminull

Ama:

string.Format(string, object[]):
biçimiyabestennull

Uygulanmakta string.Format(string, object) düşünbir şeygibi:

public static string Format(string format, Object arg0)
{
    return string.Format(format, new object[] { arg0 } );
}

O yüzden yedek bir süre sonra, kodunuzu daha yakın

// Broken code
object[] args = null; // No array at all
var test = string.Format("{0}", args); 

// Working code
object[] args = new object[] { null }; // Array with 1 value
var test = string.Format("{0}", args); 

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:
C#

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Google Chrome

    Google Chrom

    1 EYLÜL 2008
  • Learn word 2013 tutorials

    Learn word 2

    5 AĞUSTOS 2014
  • tutvid

    tutvid

    19 AĞUSTOS 2006