我在 c# 中有以下课程。如何在运行时计算数据成员的数量?
public static class ABC
{
public static string A;
public static string B;
public static string C;
}
基本上,我必须迭代每个数据成员并将其一一传递给某个函数,这将为它分配一些值。这就是为什么我需要这个。
如果不可能,有没有其他方法可以做同样的事情
这是一种方法:
var count = typeof(ABC).GetFields().Length;
由返回的数组的每个元素GetFields
对应一个数据成员。除了获取计数之外,您还可以进一步检查每个字段 - 获取其名称、检查其类型等。您还可以使用FieldInfo
对象来获取和/或设置目标类的字段。
沿着这些路线的东西会起作用。通常,您会对此类事情使用反射。
int count = typeof(ABC)
.GetFields()
.Count();
@dasblinkenlight解决方案更好,因为.Length
执行 in O(1)
,而 my .Count()
is O(N)
。
旁注,我相信您知道这一点,公共字段是邪恶的,请考虑使用属性。