Вызов методов через массив ( по индексу ) - C#
Формулировка задачи:
Приложение типа консоли, в котором надо вызывать методы по команде
Самым простым способом приходится делать swich( string ) и много кейсов
Подумал, что намного проще было бы вызывать методы по индексу, как показано в коде ниже :
Этот способ подходит в принципе, но тогда приходиться инвокать мой листбокс, и вообще вызывать методы в другом потоке достаточно стрёмно...
Уверен, что должен быть лёгкий способ, если кто такой знает - отпишите пожалуйста )
class Program
{
static Thread[] list = { new Thread( method1 ), new Thread( method2 ), new Thread( method3 ) };
static string[] index = { "a", "b", "c" };
static void Main( string[] args )
{
string input = Console.ReadLine();
int i = 0;
foreach( string n in index )
{
if( input == n) list[i].Start();
i++;
}
Console.Read();
}
static void method1()
{
Console.WriteLine( "method a" );
}
static void method2()
{
Console.WriteLine( "method b" );
}
static void method3()
{
Console.WriteLine( "method c" );
}
}Решение задачи: «Вызов методов через массив ( по индексу )»
textual
Листинг программы
class Program
{
static void Method1()
{
Console.WriteLine("Method1");
}
static void Method2()
{
Console.WriteLine("Method2");
}
static void Method3()
{
Console.WriteLine("Method3");
}
static void Main()
{
var dict = new Dictionary<int, Action>() {
{ 1, Method1 },
{ 2, Method2 },
{ 3, Method3 },
};
dict[2].Invoke(); // Вызов метода по индексу.
}
}