您可以在任何对象上执行此操作,不一定是dynamic使用反射的对象.
object obj = new SomeObject();
var meth = obj.GetType().GetMethod("someMethodName");
meth.Invoke(obj, new object[0]); // assuming a no-arg method
Run Code Online (Sandbox Code Playgroud)
使用时dynamic,可以使用方法名称的任何标识符,编译器不会抱怨:
dynamic obj = MakeSomeObject();
obj.someMethodName(); // Compiler takes it fine, even if MakeSomeObject returns an object that does not declare someMethodName()
Run Code Online (Sandbox Code Playgroud)