Форум программистов, компьютерный форум, киберфорум
Наши страницы

C# для начинающих

Войти
Регистрация
Восстановить пароль
 
Тапок ярости
7 / 7 / 3
Регистрация: 11.02.2017
Сообщений: 91
Завершенные тесты: 1
#1

Не возвращает метод - C#

26.07.2017, 23:12. Просмотров 189. Ответов 6

Добрый день

почему метод GetMethods() ничего не возвращает ?

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
class A
    {
        public int X { get; set; }
 
        public virtual void Meth()
        {
            Console.WriteLine("Базовый метод");
        }
    }
 
    class B : A
    {
        public int Y { get; set; }
 
        public override void Meth()
        {
            Console.WriteLine("Переопределенный метод");
        }
 
        public int test(int a)
        {
            return a + 10;
        }
    }
 
class Program
    {
        static void Main(string[] args)
        {
            B b = new B();
            Type t = typeof(B);
            MethodInfo[] m = t.GetMethods(BindingFlags.Public);
 
            foreach (MethodInfo mt in m)
            {
                Console.WriteLine(mt.ReturnType.Name + " " + mt.Name);
            }
 
            Console.ReadKey();
        }
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.07.2017, 23:12
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Не возвращает метод (C#):

Метод не возвращает коллекцию List - C#
Доброе время суток. Помогите пожалуйста. Проблема метод не возвращает коллекцию List пример using System; using...

Разработать метод, который возвращает массив - C#
делать по такому принципу public uint Deliteli(uint a, out sbyte kol) { uint mas = new uint; sbyte...

Исправить метод, который возвращает неверное значение - C#
Подскажите пожалуйста как переписать этот метод чтоб он возвращал переменную с (здесь не видно ее инициализации) public static int...

Метод который возвращает имя своего класса. - C#
Подскажите как реализовать метод, который будет возвращать имя своего класса, причем не в формате пространство.имякласса, а просто...

Метод возвращает неправильно расстояние от отрезка до точки - C#
В частности при A(-30;0), B(30;0), K(60;30) правильный ответ 42,4264068711929. Я вычисляю, с расчерчивание в тетради и получается 30....

Не могу создать метод который возвращает значения массива - C#
Хочу создать метод где указываю сколько цифр Фибоначчи нужно возвратить в виде массива. Не могу понять как это правильно оформить. ...

6
Fleder
243 / 206 / 86
Регистрация: 09.12.2015
Сообщений: 629
26.07.2017, 23:22 #2
Цитата Сообщение от Тапок ярости Посмотреть сообщение
почему метод GetMethods() ничего не возвращает ?
Нужно больше флагов!
C#
1
MethodInfo[] m = t.GetMethods(BindingFlags.Public | BindingFlags.Instance);
0
Someone007
1870 / 1556 / 569
Регистрация: 09.05.2015
Сообщений: 3,892
Завершенные тесты: 1
26.07.2017, 23:25 #3
C#
1
MethodInfo[] m = t.GetMethods(BindingFlags.Public | BindingFlags.Instance);
0
Fleder
243 / 206 / 86
Регистрация: 09.12.2015
Сообщений: 629
26.07.2017, 23:27 #4
Или так, если нужны статические методы:
C#
1
MethodInfo[] m = t.GetMethods(BindingFlags.Public | BindingFlags.Static);
0
OwenGlendower
Супер-модератор
Эксперт .NET
8652 / 7657 / 2811
Регистрация: 17.03.2014
Сообщений: 15,042
Записей в блоге: 1
26.07.2017, 23:28 #5
Тапок ярости, нужно добавить флаг BindingFlags.Instance в вызове GetMethods
C#
1
MethodInfo[] m = t.GetMethods(BindingFlags.Public | BindingFlags.Instance);
Еще возможно ты захочешь отфильтровать get_/set_ методы сгенерированные для свойств.
C#
1
2
3
MethodInfo[] m = t.GetMethods(BindingFlags.Public | BindingFlags.Instance)
    .Where(mi => !mi.IsSpecialName)
    .ToArray();
0
Тапок ярости
7 / 7 / 3
Регистрация: 11.02.2017
Сообщений: 91
Завершенные тесты: 1
26.07.2017, 23:30  [ТС] #6
а можно на пальцах объяснить ? если я вызываю открытые методы, то разве
C#
1
 public int test(int a)
не попадает под это условие ?
0
OwenGlendower
Супер-модератор
Эксперт .NET
8652 / 7657 / 2811
Регистрация: 17.03.2014
Сообщений: 15,042
Записей в блоге: 1
26.07.2017, 23:36 #7
Тапок ярости, попадает только частично. Необходимо еще указать какие методы тебя интересуют - экземплярные (Instance), статические (Static) или те и другие.

Добавлено через 4 минуты
Цитата из документации:
You must specify either BindingFlags.Instance or BindingFlags.Static in order to get a return.
0
26.07.2017, 23:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.07.2017, 23:36
Привет! Вот еще темы с ответами:

Метод который из массива возвращает массив чисел кратных 3, 5, и 8 - C#
Необходимо написать метод который из массива возвращает массив чисел кратных 3, 5, и 8. Написал код, но в нем две ошибки - на 11 - й...

Разработать метод f (x), который возвращает младшую цифру натурального числа - C#
Помогите составить программу. Разработать метод f(x), который возвращает младшую цифру натурального числа . Вычислить с помощью него...

Метод рандомного заполнения строки буквами возвращает System.Char - C#
Добрый день.Написал метод ToRandomLetters,который по идее должен возвращать строку с рандомными буквами латинского алфавита,но вместо нее...

Разработать метод f (x), который возвращает младшую цифру натурального числа x - C#
Помогите пожалуйста с задачками. Составить программы №1.Разработать метод f(x) , который возвращает младшую цифру натурального числа x....


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru