在C#中,typeof关键字用于获取表示指定类型的System.Type对象。通过使用typeof关键字,我们可以在运行时获取有关类型的信息,从而实现元编程。
例如,我们可以使用typeof关键字来动态创建对象、调用方法、访问属性等。下面是一个简单的示例,演示如何使用typeof关键字实现元编程:
using System;
public class Program
{
public static void Main()
{
Type type = typeof(MyClass);
// 创建对象
var obj = Activator.CreateInstance(type);
Console.WriteLine(obj.GetType().Name);
// 调用方法
var method = type.GetMethod("Print");
method.Invoke(obj, null);
// 访问属性
var property = type.GetProperty("Name");
property.SetValue(obj, "Hello World");
Console.WriteLine(property.GetValue(obj));
}
}
public class MyClass
{
public string Name { get; set; }
public void Print()
{
Console.WriteLine("Hello from MyClass");
}
}
在上面的示例中,我们使用typeof关键字获取MyClass类型的System.Type对象,并使用Activator.CreateInstance方法动态创建MyClass对象。然后,我们使用GetMethod和Invoke方法调用Print方法,使用GetProperty、SetValue和GetValue方法访问Name属性。
通过使用typeof关键字和System.Type对象,我们可以在运行时访问和操作类型的成员,实现元编程的功能。