{site_name}

{site_name}

🌜 搜索

C# 反射是一种机制,它允许程序在运行时检查和操作程序集、类型、方法和属性等

编程 𝄐 0
c#反射详解,c#反射有什么用,c#反射实例,c# 反射原理,c#反射的概念,c#反射怎么用
C# 反射是一种机制,它允许程序在运行时检查和操作程序集、类型、方法和属性等。通过反射,程序可以动态创建对象、调用方法或获取属性值,而无需在编译时知道这些信息。

例如,假设我们有以下类:

csharp
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }

public void SayHello()
{
Console.WriteLine("Hello, my name is " + FirstName + " " + LastName);
}
}


我们可以使用反射来获取该类的信息,如下所示:

csharp
Type type = typeof(Person);

// 获取所有公共属性
PropertyInfo[] properties = type.GetProperties();

// 获取所有公共方法
MethodInfo[] methods = type.GetMethods();

// 创建一个 Person 对象并设置 FirstName 和 LastName 属性
object obj = Activator.CreateInstance(type);
type.GetProperty("FirstName").SetValue(obj, "John");
type.GetProperty("LastName").SetValue(obj, "Doe");

// 调用 SayHello 方法
type.GetMethod("SayHello").Invoke(obj, null);


在上面的代码中,我们首先使用 typeof 运算符获取 Person 类型的 Type 对象。然后,我们使用 GetProperties 和 GetMethods 方法分别获取该类的所有公共属性和方法。接下来,我们使用 Activator.CreateInstance 方法动态创建一个 Person 对象,并使用 GetProperty 和 SetValue 方法设置其属性。最后,我们使用 GetMethod 和 Invoke 方法调用 SayHello 方法。

总之,反射是一种强大的机制,它允许程序在运行时动态查找和操作程序集、类型、方法和属性等。