Olası Çoğalt:
C#: Passing null to overloaded method - which method is called?Yöntem aşırı yükleme ve boş değer
bu 2 yöntemleri düşünün
Method(null);
0 Visual Studio 2008 SP1'de
Ben int[]
olsun. Neden bu
mı?
Olası Çoğalt:
C#: Passing null to overloaded method - which method is called?Yöntem aşırı yükleme ve boş değer
bu 2 yöntemleri düşünün
Method(null);
0 Visual Studio 2008 SP1'de
Ben int[]
olsun. Neden bu
mı?
Aşırı yük çözünürlüğünün bir ürünüdür. Sizin argümanınız, null
, hem object
hem de int[]
'a dönüştürülebilir. Bu nedenle, derleyici en özel sürümü seçer, çünkü int[]
, object
'dan daha belirgindir.
+1: "Bir" int [] 'olarak tanımlanmış" daha spesifik ", bir" nesneye "dolaylı olarak dökülebilir, ancak bir" nesne ", dolaylı olarak bir" int "türüne dönüştürülemez." – StriplingWarrior
int [] nesneden daha özel olduğu için, nesne parametresiyle yöntem yoksayılır. Yöntem ("Bazı dize") çağırırsanız, nesne parametresiyle yöntem çağrılır.
Derleyicinin neden aşırı yüklenmeyi tercih ettiğini soruyor olabilir. – Vlad
Onun sorusu, aşırı yüklenme çözünürlüğünün niçin nesneyi alandan ziyade bir int dizisini alan yönteme null olarak çözüldüğü sorusudur. –
Bu soruya bakın: http://stackoverflow.com/q/719546/25727 – Jan