gpt4 book ai didi

c# - 系统.反射;生成字段列表(特定类型)

转载 作者:行者123 更新时间:2023-11-30 21:11:49 25 4
gpt4 key购买 nike

我有一个类有大量特定类型的静态字段,例如Foo。为了简化和缩短代码,我考虑将它们放入一个数组中(当然也就是它们的引用)。

我可以通过简单地写出每个字段名称并将它们放入列表/数组中来做到这一点..(即 myList.Add(this.A))..但是因为我有很多这些领域的一部分,它们有时会发生变化,我想通过反射来完成这一切..应该是可能的,不是吗?

public class MyClass
{
public static Foo A = new Foo(...);
public static Foo B = new Foo(...);
public static Foo C = new Foo(...);
(...)

public List<Foo> getFoos()
{
MemberInfo[] allFooFields = typeof(MyClass).GetFields();

// Fill In Foo Fields into a List
var listOfFooFields = new List<Foo>;

// ???

return listOfFooFields;
}
}

最佳答案

使用这个:

public List<Foo> getFoos()
{
return typeof(MyClass).GetFields(BindingFlags.Static | BindingFlags.Public)
.Where(x => x.FieldType == typeof(Foo))
.Select(x => x.GetValue(null))
.Cast<Foo>()
.ToList();
}

关于c# - 系统.反射;生成字段列表(特定类型),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7836079/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com