如何在c#运行时计算数据成员的数量?
本文关键字:数据成员 计算 运行时 | 更新日期: 2023-09-27 18:11:52
我在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
在O(1)
中执行,而我的.Count()
是O(N)
。
旁注,我相信你知道这一点,公共字段是邪恶的,考虑使用属性代替