如何在C#中计算运行时数据成员的数量?

时间:2013-05-02 10:57:41

标签: c# asp.net .net

我在c#中有以下课程。如何在运行时计算数据成员数?

public static class ABC
{
  public static string A;
  public static string B;
  public static string C;
}

基本上,我必须迭代每个数据库并将其逐个传递给某个函数,这将为其分配一些值。这就是为什么我需要这个。

如果不可能,还有其他方法可以做同样的事情

2 个答案:

答案 0 :(得分:4)

这是一种方法:

var count = typeof(ABC).GetFields().Length;

GetFields返回的数组的每个元素都对应一个数据成员。除了获取计数之外,您还可以进一步检查每个字段 - 获取其名称,检查其类型等。您还可以使用FieldInfo个对象来获取和/或设置目标类的字段。

Demo on ideone.

答案 1 :(得分:3)

这些方面的东西应该有效。通常你会使用反射来做这种事情。

int count = typeof(ABC)
    .GetFields()
    .Count();

@dbbenenlight 解决方案更好,因为.LengthO(1)中执行,而我的.Count()O(N)

旁注,我相信你知道这一点,公共领域是邪恶的,考虑改用属性。