怎样获取类中所有变量
时间: 2023-08-04 11:04:59 浏览: 38
在 C# 中,可以使用反射获取类中的所有变量。具体步骤如下:
1. 使用 `typeof` 方法获取类的 `Type` 对象:
```csharp
Type type = typeof(MyClass);
```
2. 使用 `Type.GetFields` 方法获取类中的所有字段:
```csharp
FieldInfo[] fields = type.GetFields(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance);
```
上述代码中,`BindingFlags` 参数指定了要获取的字段的访问级别和实例类型。`BindingFlags.NonPublic` 表示获取非公共字段,`BindingFlags.Public` 表示获取公共字段,`BindingFlags.Instance` 表示获取实例字段。
最后,可以遍历 `fields` 数组,获取每个字段的名称、类型等信息:
```csharp
foreach (FieldInfo field in fields)
{
string name = field.Name;
Type fieldType = field.FieldType;
// ...
}
```
除了 `GetFields` 方法,还可以使用 `GetProperties` 方法获取类中的所有属性,或者使用 `GetMembers` 方法获取类中的所有成员(包括字段、属性、方法等)。需要注意的是,反射操作会影响性能,应该尽量避免在生产环境中过多地使用。