c#反射调用构造函数
时间: 2023-09-26 19:12:10 浏览: 208
你可以使用C#的反射机制来调用构造函数。以下是一个示例:
```csharp
using System;
using System.Reflection;
public class MyClass
{
private string name;
public MyClass(string name)
{
this.name = name;
}
public void PrintName()
{
Console.WriteLine(name);
}
}
public class Program
{
public static void Main()
{
Type type = typeof(MyClass);
ConstructorInfo constructor = type.GetConstructor(new Type[] { typeof(string) });
if (constructor != null)
{
object instance = constructor.Invoke(new object[] { "Hello World" });
MyClass myObject = (MyClass)instance;
myObject.PrintName();
}
}
}
```
在上述示例中,我们使用`typeof`操作符获取`MyClass`的类型。然后,使用`GetConstructor`方法获取接受一个`string`参数的构造函数。如果构造函数存在,我们可以使用`Invoke`方法创建类的实例,并传递参数。最后,我们将实例转换为`MyClass`类型,并调用其方法。
请注意,反射操作可能会影响性能,因此请谨慎使用。
阅读全文