我可以通过foreach或其他循环构造获得成员字段吗?

本文关键字:成员 字段 foreach 可以通过 其他 循环 | 更新日期: 2023-09-27 18:16:58

是我的全局变量。类有1000个成员。

internal class Global
{
    internal static int a1;
    internal static int a2;
    internal static int a3;
    ...
    ...
    internal static int a1000;   
}

当btn1被按下时,我想把它的值保存到如下文件中:

private void button1_Click(object sender, RoutedEventArgs e)
{
    foreach( value in member )
    {
        //put value to file         
    }    
}

如何通过foreach或其他循环结构访问其成员?

我可以通过foreach或其他循环构造获得成员字段吗?

最好使用int数组并循环int数组而不是Global

internal class Global
{
    internal static int [] Arr;
}

foreach(int value in Globalmember.Arr)
{
    //put value to file         
}    

虽然您可以使用System. get类的成员。反思,看看这篇文章。下面的示例展示了如何使用System获取属性。反射

Type type = typeof(TestGlobal);
FieldInfo[] fields = type.GetFields(BindingFlags.NonPublic | BindingFlags.Static); 
foreach (var field in fields) 
{
    if(field.Name.StartsWith("a"))
        Debug.WriteLine(field.Name);
}

注意您应该以一种可以在字段集合中唯一搜索到的方式命名属性。例如,a可能出现在您不想要的许多其他属性中,但aaa不太可能出现在其他属性中。