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

本文关键字:数据成员 计算 运行时 | 更新日期: 2023-09-27 18:11:52

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

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

基本上,我必须迭代每个数据成员,并将其逐个传递给某个函数,该函数将为其赋值。这就是我需要这个的原因。

如果这是不可能的,有没有其他的方法来做同样的

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

有一种方法:

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

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

这样做就可以了。通常你会用反射来处理这类事情。

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

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

旁注,我相信你知道这一点,公共字段是邪恶的,考虑使用属性代替