Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
9 / 9 / 2
Регистрация: 27.03.2012
Сообщений: 79
1

Преобразование строки в имя метода

16.06.2013, 11:58. Показов 2817. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!
У меня есть библиотека с несколькими методами (например в ней реализован метод возведения числа в степень Pow(x,y))
И у меня есть консольное приложение, которое работает с этой библиотекой.
Задача такая:
1. Я ввожу в консоль команду, например Pow 5 10
2. программа должна посмотреть, существует ли такой метод в библиотеке. Если существует, то возвести 5 в 10-ю степень, иначе вывести на экран "Команда не поддерживается".

Помогите пожалуйста со вторым шагом, как мне проверить (сравнить введенную строку и реально описанный метод) есть ли такой метод или нет.
И как мне потом к нему обращаться?

Спасибо большое!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.06.2013, 11:58
Ответы с готовыми решениями:

Можно ли во время выполнения "извлечь" имя приложения, имя класса, имя исполняемого метода и пр. ?
или какие-нубдь "квазипеременные" компилятора, позволяющие их использовать?

Преобразование строки в имя объекта
помогите плиз вот с таким вопросом: у меня есть следующая часть кода: Dim x as integer = 1 Dim...

При сравнении экземпляра делегата с именем метода, имя метода преобразуется автоматически в делегат или нет?
Добрый день. Есть несколько вопросов про событий и делегаты: 1) При сравнении экземпляра делегата...

Получить имя метода внутри самого метода
function myFunc() { console.log(arguments.callee.name); } myFunc(); Выводит всё как надо -...

2
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
16.06.2013, 12:43 2
Лучший ответ Сообщение было отмечено Source-of-life как решение

Решение

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;
 
namespace ConsoleApplication20Refl
{
    class Program
    {
        static void Main()
        {
            const int a = 5, b = 4;
            string com = "Pow";
            var meth = typeof (Math).GetMethod(com);
            if (meth == null)
                Console.WriteLine("Метод не найден");
            else
            {
                object[] args = {a, b};
                double result = (double) meth.Invoke(null, args);
                Console.WriteLine("{0} {1} {2} = {3}", com, a, b, result);
            }
            Console.ReadKey();
        }
    }
}
1
Каратель
Эксперт С++
6609 / 4028 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
16.06.2013, 13:26 3
без проверок и ввода
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System;
using System.Collections.Generic;
 
class Program
{
    delegate double BinaryFunc(double a, double b);
    
    static Dictionary<String, BinaryFunc> ops = new Dictionary<String, BinaryFunc>();
    
    static Program()
    {
        ops.Add("Pow", Math.Pow);
        ops.Add("Add", (x, y) => x + y);
    }
    
    static void Main()
    {
        Console.WriteLine(ops["Pow"](5, 10));
        Console.WriteLine(ops["Add"](5, 10));
    }
}
1
16.06.2013, 13:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.06.2013, 13:26
Помогаю со студенческими работами здесь

Дано полное имя файла, т.е путь к файлу, имя и расширение. Выделить из строки только имя первого католога
Помогите пожалуйста!!! Залание: Дано полное имя файла, т.е путь к файлу, имя и расширение....

Строки: ввести фамилию, имя и отчество, вывести имя в столбик
Ввести фамилию, имя и отчество как одно данное строкового типа. Вывести имя в столбик.

Требуется имя метода
{ double x = Convert.ToDouble(textBox1.Text); double sum; ...

Получить имя метода
Всем привет, когда начал юзать org.slf4j.Logger то для упрощения поиска ошибок пишу сразу названия...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru