如果我只获得了类的字符串名称,如何在静态类上调用方法?

本文关键字:静态类 方法 调用 获得了 字符串 如果 | 更新日期: 2023-09-27 18:11:45

例如,我有一个字符串列表,恰好是静态类的名称,根据选择的字符串名称,我只想使用该静态类。我知道在静态类上调用了什么方法,并且在每个类上都是相同的。

如果字符串是"x","y","z",选择的字符串是"z",方法称为process(),那么在我的代码中,它将以某种方式调用x.process(), x是实际静态类的名称。

记住这些是static

如果我只获得了类的字符串名称,如何在静态类上调用方法?

您将使用反射,但包含class名称的namespace

Type type = Type.GetType("namespace.x");
MethodInfo process = type.GetMethod("process");
process.Invoke(null, null);