3 c# reflection
我有一个这样的对象:
public class Filters {
public int var1 = 1,
var2 = 2,
var3 = 3;
}
Run Code Online (Sandbox Code Playgroud)
我在这里声明这个对象:
Filters filter1 = new Filters();
Run Code Online (Sandbox Code Playgroud)
我想循环访问var1、var2、 并用它做一些事情。var3IE:
foreach (var prop in filter1.props) {
Console.WriteLine(filter1[prop] + 3);
}
Run Code Online (Sandbox Code Playgroud)
输出将是:
4
5
6
Run Code Online (Sandbox Code Playgroud)
我想我需要使用 foreach 循环为每个属性做一个 foreach 循环
foreach(PropertyInfo p in filter1.GetType().GetProperties()),但我不知道如何 1) 循环遍历 props var1、var2、var3 和 2) 如何使用存储filter1在变量中的名称对 prop 进行子集化
如果您将变量描述为如下所示的属性,
public class Filters
{
public int var1 { get; set; } = 1;
public int var2 { get; set; } = 2;
public int var3 { get; set; } = 3;
}
Run Code Online (Sandbox Code Playgroud)
您可以通过以下方式访问这些属性
GetType().GetProperties()
那么 main 方法会给你你所要求的
static void Main(string[] args)
{
Filters filter1 = new Filters();
foreach (var prop in filter1.GetType().GetProperties())
{
Console.WriteLine("{0}={1}", prop.Name, (int)prop.GetValue(filter1, null) + filter1.GetType().GetProperties().Length);
}
Console.ReadKey();
}
Run Code Online (Sandbox Code Playgroud)
结果将是
var1=4
var2=5
var3=6
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13332 次 |
| 最近记录: |