C# derleyicisi neden bu kod parçasının geçersiz olduğunu söylemiyor? Ben statik yönteminden bir statik olmayan bir yöntemi çağırmak için çalışıyorum çünküNeden C# derleyicisi, dinamik argümanlı çağrı sitelerinde yöntemin "statikliğini" kontrol etmiyor?
class Program
{
static void Main(string[] args)
{
dynamic d = 1;
MyMethod(d);
}
public void MyMethod(int i)
{
Console.WriteLine("int");
}
}
MyMethod
çağrısı zamanında başarısız olur. Bu çok makul, ancak derleyici neden derleme zamanında bir hata olarak düşünmüyor?
şu
class Program
{
static void Main(string[] args)
{
dynamic d = 1;
MyMethod(d);
}
}
böylece dinamik sevk rağmen derleyici
MyMethod
var olduğundan etmez derlemek olmaz. Neden "statikliği" doğrulamıyor?
Ancak "MyMethod" adıyla örnek yöntemi yoksa, * bir derleme hatası oluşturabilir * olması gerekir ???? Görünüşe göre derleyici, hiç yok diye düşünecek kadar zekidir "diye bir şey yok ... böylece cevabınız beni henüz ikna etmedi ... belki biraz daha fazla detaylandırırsın? :-) –
Neden almıyorum (çalışma zamanı) Aşırı yük çözünürlüğü, çağrı siteminin statik bir yöntemde olduğu durumlarda tüm örnek yöntemlerini hesaba katar. – CodesInChaos
İyi bir tanılama oluşturmaya çalıştığı için. Programcı aşırı yüklemeyi yapmayı mı unuttun? Ya da statik anahtar sözcüğünü unuttu mu? –