gpt4 book ai didi

c# - 我们可以在运行时创建一个类的实例并通过代码调用类的所有方法吗?

转载 作者:太空狗 更新时间:2023-10-30 00:35:03 25 4
gpt4 key购买 nike

在一次面试中,面试官问我我们可以在运行时创建一个类的实例并通过代码调用该类的所有方法吗?下面是类 TestClass 的示例代码

public class TestClass
{
public int ID
{
get;
set;
}
public string Name
{
get;
set;
}
public float Salary
{
get;
set;
}
public string Department
{
get;
set;
}
public int Add(int a, int b)
{
return a + b;
}
public int Sub(int a, int b)
{
return a - b;
}
}//end class

现在我想在运行时创建此类的实例并在运行时调用它的所有方法和属性,谁能解释一下我该如何归档它。2. 这样调用方法有什么好处/用途?

最佳答案

是的,这是可能的。

要创建您将使用的实例:

Type classType = Type.GetType("TestClass");
object instance = Activator.CreateInstance(classType);

然后在 instance 上调用 Sub(23, 42) 看起来像:

classType.InvokeMember("Sub", BindingFlags.InvokeMethod, null, instance, new object[] { 23, 42 });

反射用于(例如)当您在编译时不知道类型并希望在运行时发现它们时(例如在外部 dll、插件等中)。

关于c# - 我们可以在运行时创建一个类的实例并通过代码调用类的所有方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5854809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com