RuntimeHelpers.PrepareMethod(RuntimeMethodHandle)の挙動が理解できない・・・
このコードでm2にPrepareMethodを使うことは不可能ですか?
==
using System.Runtime.CompilerServices;

class B<T> { public void M() { } }
class C1 : B<int> { }
class C2 : B<string> { }

class Program
{
  static void Main(string[] args)
  {
    var m1 = typeof(C1).GetMethod("M").MethodHandle;
    var m2 = typeof(C2).GetMethod("M").MethodHandle;

    RuntimeHelpers.PrepareMethod(m1); // 問題なし
    RuntimeHelpers.PrepareMethod(m2); // System.ArgumentException: '指定されたジェネリックのインスタンス化は無効です。'
  }
}
==