27 NİSAN 2012, Cuma
Neden Dönüştürmek.Olabilirdi(null) null atama, farklı bir değer döndürür?
Convert.ToString(null)
verir
null
Beklediğim gibi.
Ama
Convert.ToString(null as object)
verir
""
Neden bu farklı?
CEVAP
27 NİSAN 2012, Cuma
Oyuna gel o ToString
2 aşırı yükleme vardır
Convert.ToString(object o);
Convert.ToString(string s);
C# derleyicisi aslında giriş ile birlikte çalışılacak en özel aşırı yük almaya çalışır. null
değeri herhangi bir başvuru türü için dönüştürülebilir. Bu durumda string
object
daha belirli ve dolayısıyla kazanan olarak seçilmiş olacak.
null as object
object
olarak ifade türü katılaşmış ettik. Bu artık string
aşırı yük ile uyumlu olduğu anlamına gelir ve derleyici yalnızca uyumlu bir kalan gibi object
aşırı yük alır.
Bu kravat kırma nasıl çalıştığını gerçekten detayları C bölüm 7.4.3 kaplı# dil spec.
Bunu Paylaş:
Neden Çift.(null) parseDouble ve Tamsa...
Neden JavaScript orada bir `null` değe...
Neden operatör null verildiğinde yanlı...
Neden >= yanlış zaman == null değer...
Neden yapar .() Olabilirdi boş bir diz...