Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вывод свойств объекта 
:(
    Опции темы
blackbanny
Дата 10.9.2013, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 18.11.2009

Репутация: нет
Всего: нет



Доброго времени суток!

Есть способ вывести значения всех свойств объекта, т.е. есть класс:

Код

class MyClass {
    public string str1 = "str1";
    public string str2 = "str2";
    //...
    public string strN = "strN";
}


после создания объекта 
Код

MyClass obj = new MyClass()


нужно вывести значения всех его полей... можно конечно самому писать 
Код

Console.WriteLine(obj.str1 + " " + obj.str2 + " " + и т.д.);


а как можно это сделать не перебирая вручную?
PM MAIL   Вверх
jonie
Дата 10.9.2013, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 22
Всего: 118



Код

using System.IO;
using System;
using System.Linq;

class Program
{
    public int f1 = 42;
    public string f2 = "hi";
    
    static void Main()
    {
       var target = new Program();
       var targetType = target.GetType();
       var fields = targetType.GetFields().Where(f => f.IsPublic).ToList();
       foreach(var f in fields){
           var value = f.GetValue(target);
           Console.WriteLine("{0} value {1}", f.Name, value);
       }
    }
}




--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
blackbanny
Дата 19.9.2013, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 18.11.2009

Репутация: нет
Всего: нет



jonie, спасибо) буду проверять)
PM MAIL   Вверх
gambit
Дата 7.10.2013, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: 5
Всего: 40



blackbanny, Джони сказал конкретное решение. Вообще механизм называется рефлексия, посмотри на него шире, у него есть плюсы и большие минусы
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.1211 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.