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