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 方法。
总之,反射是一种强大的机制,它允许程序在运行时动态查找和操作程序集、类型、方法和属性等。
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 方法。
总之,反射是一种强大的机制,它允许程序在运行时动态查找和操作程序集、类型、方法和属性等。
本文地址:
/show-278644.html
版权声明:除非特别标注原创,其它均来自互联网,转载时请以链接形式注明文章出处。