Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.98/41: Рейтинг темы: голосов - 41, средняя оценка - 4.98
 Аватар для _katon_
414 / 265 / 25
Регистрация: 03.10.2011
Сообщений: 1,094

Проверка наличия метода в объекте/классе

27.08.2013, 11:52. Показов 8894. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Народ, подскажите каким образом в C# можно у объекта проверить наличие метода?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.08.2013, 11:52
Ответы с готовыми решениями:

Проверка наличия объекта в классе
Здравствуйте. Возникла проблема с методом поиска. При запуске проги создаю массив, заполняю его объектами трех классов. Поиск у меня должен...

Проверка использования метода в классе. Новичок
Привет. Есть код: class NewClass @list = def method_1 if @list.include?(any_value)

Нахождения метода в объекте
Задача из простых(детская), но почему то я не могу решение ей найти Сервер отдает такой ответ ...

7
 Аватар для andrew_w2k
341 / 341 / 90
Регистрация: 04.03.2010
Сообщений: 648
27.08.2013, 12:24
вызвать его
0
2 / 2 / 2
Регистрация: 02.01.2012
Сообщений: 112
27.08.2013, 12:47
Для проверки наличия каких либо объектов в классе или в другом объекте существует рефлексия.
Подключите пространство имен System.Reflection.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using System.Reflection;
class MyClass
{
   int x;
   int y;
   public int Sum()
   {
      return x+y;
   }
}
class Reflection
{
   static void Main()
   {
       Type t = tupeof(MyClass);//получить объект класса Type представляющий класс MyClass
        MethodInfo mi = t.GetMethods();
        foreach(MethodInfo m in mi)
       {
       ConsoleWrite(m.Name);
       }
   }
 
}
Следущий код будет выводить все имена методов содержащиеся в классе MyClass
1
 Аватар для _katon_
414 / 265 / 25
Регистрация: 03.10.2011
Сообщений: 1,094
27.08.2013, 13:18  [ТС]
Спасибо только походу не "tupeof" а "typeof".

Добавлено через 3 минуты
гм..
А еще
C#
1
MethodInfo[] mi = t.GetMethods();
ну или
C#
1
var mi = t.GetMethods();
Добавлено через 9 минут
Окончательный вариант выглядит вот так:
C#
1
2
3
4
5
            
var t = typeof(Operator);
var mi = t.GetMethods();
var text = mi.Aggregate("", (current, methodInfo) => current + (" " + methodInfo.Name));
MessageBox.Show(text);
IgorDaiko, спасибо за помощь.
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
27.08.2013, 13:19
Может лучше интерфейсами воспользоваться?
0
 Аватар для _katon_
414 / 265 / 25
Регистрация: 03.10.2011
Сообщений: 1,094
27.08.2013, 13:28  [ТС]
В чем преимущество?
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
27.08.2013, 13:32
Цитата Сообщение от _katon_ Посмотреть сообщение
В чем преимущество?
В производительности и отсутсвии необходимости городить костыли.
0
2 / 2 / 2
Регистрация: 02.01.2012
Сообщений: 112
27.08.2013, 15:39
Цитата Сообщение от _katon_ Посмотреть сообщение
Спасибо только походу не "tupeof" а "typeof".

Добавлено через 3 минуты
гм..
А еще
C#
1
MethodInfo[] mi = t.GetMethods();
ну или
C#
1
var mi = t.GetMethods();
Добавлено через 9 минут
Окончательный вариант выглядит вот так:
C#
1
2
3
4
5
            
var t = typeof(Operator);
var mi = t.GetMethods();
var text = mi.Aggregate("", (current, methodInfo) => current + (" " + methodInfo.Name));
MessageBox.Show(text);
IgorDaiko, спасибо за помощь.
ну да, просто быстро печатал, и не проверил)

Добавлено через 2 минуты
Для проверки наличия каких либо объектов в классе или в другом объекте существует рефлексия.
Подключите пространство имен System.Reflection.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
using System.Reflection;
class MyClass
{
int x;
int y;
public int Sum()
{
return x+y;
}
class Reflection
{
static void Main()
{
Type t = tupeof(MyClass);//получить объект класса Type представляющий класс MyClass
MethodInfo mi = t.GetMethods();
foreach(MethodInfo m in mi)
{
ConsoleWrite(m.Name);
}
}
}
}
Следущий код будет выводить все имена методов содержащиеся в классе MyClass
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.08.2013, 15:39
Помогаю со студенческими работами здесь

Проверка наличия шрифта в системе и установить если отсуствует + проверка запущен ли проект с правами админа
Здравствуйте. Как можно проверить наличия шрифта в системе и установить его если отсуствует. Ну плюс еще проверить запущен ли проект от...

Использовать 2 метода в одном объекте <img>
Делаю список товаров, где возможен переход к его подробному описанию. Имеется в объекте метод получения картинки, @if (Model.ImageData...

Не понимаю значения метода в объекте специального события
Всем привет! Ковыряюсь в объекте специального события jquery jQuery.event.special. Для примера взял код на одном из сайтов, который...

Что значит, когда на объекте вызывают два метода подряд?
Добрый вечер ! Скажите пожалуйста, как понять вот такую конструкцию... $newOdj-&gt;show()-&gt;show2(); Что значит, когда на...

Проверка на существование поля в объекте
Получаю ответ от сервера в json формате, как мне проверить существование определенного поля в этом объекте. { &quot;type&quot;:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru