SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • graham025

    graham025

    25 NİSAN 2006
  • Menglong Tav

    Menglong Tav

    18 Temmuz 2010
  • natescamp

    natescamp

    30 NİSAN 2009