Как перечислить все переменные classа

Есть ли способ перечислить все переменные (поля) classа в C #. Если да, то может ли кто-нибудь дать мне несколько примеров, как сохранить их в List и получить их, возможно, с помощью Anonymous Types (var).

5 Solutions collect form web for “Как перечислить все переменные classа”

Ваш вопрос не совсем ясен. Похоже, вы хотите, чтобы значения полей для данного экземпляра вашего classа:

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

Обратите внимание, что fieldValues – это List . Здесь 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а.

В этом списке будут указаны имена всех полей в 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(); 

Не совсем вопрос – но вот как получить значения всех свойств типа Decimal от объекта, называемого «inv»:

 var properties = inv.GetType().GetProperties(); foreach (var prop in properties) { if (prop.ToString().ToLower().Contains("decimal")) { totalDecimal += (Decimal)prop.GetValue(inv, null); } } 
  • C # получает собственное имя classа
  • Call and Callvirt
  • Как скрыть общественные методы от intellisense
  • В чем разница между a.getClass () и A.class в Java?
  • Как проверить, является ли тип примитивным
  • Какая польза для тегов в Go?
  • Есть ли способ «переопределить» метод с reflectionм?
  • Получение типа classа из строки
  • c # экземпляр classа из строки
  • GetProperties () возвращает все свойства иерархии наследования интерфейса
  • GetMethod для общего метода
  • Interesting Posts

    Каково значение url-шаблона в web.xml и как настроить сервлет?

    Подавить вывод одной команды в R

    Существуют ли какие-либо инструменты для масштабирования / увеличения определенного окна или приложения?

    Предотrotation пузырьков событий при использовании проверенного связывания в knockoutjs

    Как включить службы терминалов в Windows 8?

    Неопределенная переменная: ошибки в Laravel

    Узел узла (Grunt) установлен, но недоступен

    Как ssh к бродяге без фактического запуска «бродячего ssh»?

    Частота часов и другие факторы

    Как извлечь текст, который находится между круглыми скобками (круглые скобки)?

    Строка заменит обратную косую черту

    Как заставить диск FireWire отображаться как диск (в отличие от общей папки) в виртуальной машине VMWare Windows XP на моем Mac?

    Windows 7 не загружается после отказа SRT (SSD-кэширование)

    Конфигурирование истории файлов Windows 8 / 8.1 / 10 с помощью командной строки

    SFINAE для проверки наследуемых функций-членов

    Давайте будем гением компьютера.