在PHP中,我可以尝试调用对象上可能存在的任何方法,如下所示:
$object->{$method}();
$object我们的PHP对象在哪里,是$method我们想要调用的方法的名称.我可以用这种方式动态调用任何方法.
有没有C#等同于此?或者我只是"做错了"?我有一个通过Reflection加载的插件/模块,我想调用一个未在接口中定义的方法.
谢谢!
与PHP相反,C#是一种静态类型语言,这意味着需要在编译时知道类型.虽然这种方法已经在C#4.0中引入.这是动态关键字.它允许您声明一个动态类型的变量,并在其上调用您喜欢的任何方法,编译器不会抗议.解决方案将在运行时完成:
dynamic obj = FetchInstanceFromSomewhere();
obj.Method();
Run Code Online (Sandbox Code Playgroud)
另一种更经典的方法是使用反射,但这很快就会变成一场噩梦.
| 归档时间: |
|
| 查看次数: |
501 次 |
| 最近记录: |