C# 字符串到我可以从中调用函数的类
关于 在 c# 中通过字符串变量初始化类? 我已经找到了如何使用字符串创建一个类
,所以我已经拥有的是:
Type type = Type.GetType("project.start");
var class = Activator.CreateInstance(type);
我想要做的是调用此类上的函数,例如:
class.foo();
这可能吗?如果是的话怎么办?
on initialize a class by string variable in c#? I already found out how to create an class using a string
so what I already have is:
Type type = Type.GetType("project.start");
var class = Activator.CreateInstance(type);
what I want to do is call a function on this class for example:
class.foo();
is this possible? and if it is how?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
如果您可以假设该类实现了公开 Foo 方法的接口或基类,则适当地转换该类。
然后在您的调用代码中您可以执行以下操作:
If you can assume that the class implements an interface or base class that exposes a Foo method, then cast the class as appropriate.
then in your calling code you can do:
这是可能的,但您必须使用反射或在运行时将
class
强制转换为正确的类型。反射示例:
It is possible but you will have to use reflection or have
class
be cast as the proper type at runtime..Reflection Example:
Activator.CreateInstance
返回一种对象
类型。如果您在编译时知道类型,则可以使用通用的 CreateInstance。Activator.CreateInstance
returns a type ofobject
. If you know the type at compile time, you can use the generic CreateInstance.Invoke 方法的第二个参数是方法参数。
The second argument to the Invoke method are the method parameters.