C# 等效于 PHP 动态方法调用

标签 c# php reflection

在 PHP 中,我可以尝试调用对象上可能存在的任何方法,如下所示:

$object->{$method}();

其中 $object 是我们的 PHP 对象,$method 是我们要调用的方法的名称。我可以通过这种方式动态调用任何方法。

是否有与此等效的 C#?还是我只是“做错了”?我有一个通过反射加载的插件/模块,我想调用一个未在接口(interface)中定义的方法。

谢谢!

最佳答案

与 PHP 不同,C# 是一种静态类型语言,这意味着需要在编译时知道类型。虽然这种方法已经在 C# 4.0 中引入。这是 dynamic关键词。它允许您声明一个动态类型的变量并调用您喜欢的任何方法,编译器不会抗议。解析将在运行时完成:

dynamic obj = FetchInstanceFromSomewhere();
obj.Method();

另一种更经典的方法是使用反射,但这很快就会变成一场噩梦。

关于C# 等效于 PHP 动态方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3899814/

相关文章:

php - 我正在尝试在 php 中使用亚马逊 api 代码,但它给了我不支持版本的错误,以下是我的代码

c# - 通过反射将项目动态添加到 List<T>

c# - 当我们可以用纯反射做同样的事情时为什么要使用 PrivateObject

php - 如何更改 laravel excel 中所有单元格的高度和宽度

Java 反射

c# - 可空类型不是可空类型?

c# - 如何从 Azure KeyVault 获取连接字符串?

c# - 使用 HTML AGILITY PACK 更改标签内部文本

c# - Asp .Net Core 中的自定义模型绑定(bind)

php - 当MySQL列为1时显示文本