在C#中,可以使用反射來動態創建對象。下面是一個簡單的示例代碼:
using System;
using System.Reflection;
public class Program
{
public class MyClass
{
public string Name { get; set; }
public int Age { get; set; }
public MyClass()
{
Name = "John Doe";
Age = 30;
}
public void PrintInfo()
{
Console.WriteLine($"Name: {Name}, Age: {Age}");
}
}
public static void Main()
{
Type type = typeof(MyClass);
object obj = Activator.CreateInstance(type);
MethodInfo printInfoMethod = type.GetMethod("PrintInfo");
printInfoMethod.Invoke(obj, null);
}
}
在這個示例中,我們定義了一個名為MyClass
的類,它有一個構造函數和一個打印信息的方法。在Main
方法中,我們使用typeof
方法獲取MyClass
的Type
對象,然后使用Activator.CreateInstance
方法動態創建一個MyClass
的實例。接著,我們使用反射獲取PrintInfo
方法的MethodInfo
對象,并通過Invoke
方法調用該方法。
通過這種方式,我們可以動態創建對象并調用其方法,而不需要在代碼中直接使用類名。這種方法在需要根據運行時條件來創建對象時非常有用。