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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Использование значения строки как метод\свойство 
:(
    Опции темы
AlexKoso
Дата 15.4.2009, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Подскажите как использовать значение строки как метод\свойство для переменной.
Ну например:
string s = "stroka";
string l = "Length";
как сделать, чтобы значение строки l можно было заюзать как свойство для строки s (т.е. само свойство нам не известно), и в итоге получить такую строку s.Length ???

Например по аналогии в 1с это можно можно было бы сделать таким образом: s[l] что равнялось бы s.Length
Подскажите, всю голову сломал.
PM MAIL   Вверх
diadiavova
Дата 15.4.2009, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

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



Код

s.GetType().GetProperty( l).GetValue( s, null);

Вроде так


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
AlexKoso
Дата 15.4.2009, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(diadiavova @ 15.4.2009,  22:23)
Код

s.GetType().GetProperty( l).GetValue( s, null);

Вроде так

Спасибо. Но вот только возвращаемый тип далеко не int. 

А как можно получить элемент, имя которого из строки собирается, чтобы например в ручную все элементы не переписывать? (знаю что не понятно =) вот попробую код написать для примера, который ясное дело заведомо не рабочий :(

Код

string b= "button";
for (i=1, i<10, i++)
{
      b+i.Enabled = true; // хочу получить вот такое: button1.Enabled = true, button2.Enabled = true, button3.Enabled = true и т.д.
}



Это сообщение отредактировал(а) AlexKoso - 15.4.2009, 23:00
PM MAIL   Вверх
diadiavova
Дата 15.4.2009, 23:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

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



Если все кнопки в одном контейнере, то просто можно перебрать их и проверив заданные условия(например свойство Name) выполнить нужные действия. В ином случае, если кнопки просто объявлены в форме, то что-то в этом роде
Код

FieldInfo[] fis =  this.GetType().GetFields();
foreach (FieldInfo fi in fis)
{
      object f = fi.GetValue(this);
     if( f is Button)
     {
           Button b =  (Button)f;
           if(b.Name.Substring(0,6) == "button")
           b.Enabled = true;

     }
}

Вот как-то так.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

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


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

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


 




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


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

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