Csharp/C#教程:如何列出所有类的变量分享


如何列出所有类的变量

有没有办法在C#中列出类的所有变量(字段)。 如果是,可能有人给我一些例子如何将它们保存在List并使用Anonymous Types (var)获取它们。

你的问题不是很清楚。 听起来你想要类的给定实例的字段值:

 var fieldValues = foo.GetType() .GetFields() .Select(field => field.GetValue(foo)) .ToList(); 

请注意, fieldValuesList 。 这里, foo是您class级的现有实例。

如果您想要public和非public字段,则需要通过更改绑定标志

 var bindingFlags = BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public; var fieldValues = foo.GetType() .GetFields(bindingFlags) .Select(field => field.GetValue(foo)) .ToList(); 

如果你只想要这些免费精选名字大全:

 var fieldNames = typeof(Foo).GetFields() .Select(field => field.Name) .ToList(); 

在这里, Foo是你class级的免费精选名字大全。

这将列出类中所有字段的名称(公共和非公共字段,包括静态字段和实例字段):

 BindingFlags bindingFlags = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static; foreach (FieldInfo field in typeof(TheClass).GetFields(bindingFlags)) { Console.WriteLine(field.Name); } 

如果要基于某个对象实例获取字段,请改用GetType

 foreach (FieldInfo field in theObject.GetType().GetFields(bindingFlags)) { Console.WriteLine(field.Name); } 

 myClass.GetType().GetProperties() 

 var fields = whateverYourClassType.GetType().GetFields().Select(f => f.Name).ToList(); 

问题不完全 – 但是这里是如何从名为“inv”的对象中获取Decimal类型的所有属性的值:

上述就是C#学习教程:如何列出所有类的变量分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 var properties = inv.GetType().GetProperties(); foreach (var prop in properties) { if (prop.ToString().ToLower().Contains("decimal")) { totalDecimal += (Decimal)prop.GetValue(inv, null); } } 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1025307.html

(0)
上一篇 2022年1月8日
下一篇 2022年1月8日

精彩推荐