2

現在、次のように呼び出しを行っ[mscorlib]System.Console::Write(char)ています。

ilg.EmitCall(OpCodes.Call,
             typeof(Console).GetMethods().First(m =>
                 m.Name == "Write" && m.GetParameters().Length == 1 &&
                 m.GetParameters().Any(p => p.ParameterType == typeof(char))),
             null);

しかし、おそらく正式な引数を実際に反復せずに、メソッドを参照する方法についてよりクリーンな方法はありますか?Console.Write(char)

4

1 に答える 1

8

GetMethodではなく、を使用してみてくださいGetMethods

ilg.EmitCall(OpCodes.Call, 
  typeof(Console).GetMethod("Write", new[] { typeof(char) }),
  null);
于 2012-11-05T16:55:59.670 に答える