C#循环反射class字段
时间: 2023-09-09 14:12:15 浏览: 156
可以使用反射获取类的字段信息,并通过循环遍历来操作这些字段。以下是一个示例代码:
```csharp
using System;
using System.Reflection;
public class MyClass
{
public int Id { get; set; }
public string Name { get; set; }
public double Price { get; set; }
}
class Program
{
static void Main(string[] args)
{
MyClass obj = new MyClass();
obj.Id = 1;
obj.Name = "Product A";
obj.Price = 10.0;
Type type = obj.GetType();
PropertyInfo[] properties = type.GetProperties();
foreach (PropertyInfo property in properties)
{
Console.WriteLine("{0} = {1}", property.Name, property.GetValue(obj));
}
}
}
```
在这个例子中,我们定义了一个名为 MyClass 的类,具有三个公共属性:Id、Name 和 Price。在 Main 方法中,我们创建了一个 MyClass 的实例,并设置了其属性值。然后,我们使用 GetType 方法获取 MyClass 类型的 Type 对象,并使用 GetProperties 方法获取该类型的所有公共属性。最后,我们使用 foreach 循环遍历属性数组,并使用 GetValue 方法获取每个属性的值并将其输出。
你可以根据需要对属性进行操作,例如修改属性值、验证属性是否具有特定的属性(例如只读或必需)等。请注意,此方法只能访问公共属性。如果要访问私有属性,需要使用 BindingFlags 参数来指定 BindingFlags.NonPublic 标志。
阅读全文