using System;
class Foo
{
public static void Main () { new Foo ().Run (); }
public void Sort (Array array) { Console.WriteLine (“#1”); }
public void Sort (T [] array) { Console.WriteLine (“#2”); }
void Run ()
{
char [] chars = new char [] {‘A’, ‘D’, ‘B’, ‘C’};
Sort (chars);
Sort (chars);
}
}
常に#2の方しか呼ばれなくて、ちょっとハマった。C#のgenericsで生成されるILってランタイム上の動的型生成だから、ILのcall(やcallvirt)でSortって書いてあるのを呼び出したら、最適なマッチングはSort