Добавить методы класса в лист
Выполняю задачи в институте на c#. На каждой неделе мы делаем 2-3 задачи.
using System;
using System.Threading.Tasks;
using Теория_алгоритмов;
namespace Теория_алгоритмов
{
class Programm
{
static void Main()
{
string output;
System.Console.OutputEncoding = System.Text.Encoding.UTF8;
// Выбор задачи для запуска
Console.WriteLine("Выберите задачу:");
for (int i = 0; i < Tasks.tasksCount + 1; i++)
{
Console.WriteLine($"> {i}");
}
// Вывод задач и их выбор
Console.Write("> ");
output = Console.ReadLine() ?? "Empty";
Console.Clear();
switch (output.ToLower())
{
case "1":
Tasks.firstTask();
Programm.Main();
break;
case "2":
Tasks.secondTask();
Programm.Main();
break;
case "3":
Tasks.thirdTask();
Programm.Main();
break;
case "4":
Tasks.fourthTask();
Programm.Main();
break;
case "0":
Environment.Exit(0);
break;
case "":
Environment.Exit(0);
break;
default:
Console.WriteLine("Такой задачи нету!");
Programm.Main();
break;
}
}
}
}
Это код, для выбора задачи.
using System;
namespace Теория_алгоритмов
{
public class Tasks
{
internal static int tasksCount = 4;
public static void firstTask()
{
int num, hundreds, decimalNum, firstNum;
Console.WriteLine("Введите трехзначное число");
Console.Write("> ");
num = Convert.ToInt32(Console.ReadLine());
hundreds = num / 100;
decimalNum = (num % 100) / 10;
firstNum = num % 10;
num = decimalNum * 100 + hundreds * 10 + firstNum;
Console.WriteLine($"Конвертированное число - {num}");
}
public static void secondTask()
{
int num, decimalNum, firstNum;
Console.WriteLine("Введите двузначное число");
Console.Write("> ");
num = Convert.ToInt32(Console.ReadLine());
decimalNum = num / 10;
firstNum = num % 10;
if(decimalNum == firstNum)
{
Console.WriteLine("True");
} else
{
Console.WriteLine("false");
}
}
public static void thirdTask()
{
double x = -1.2, step;
Console.WriteLine("Введите шаг:");
Console.Write("> ");
step = Convert.ToDouble(Console.ReadLine());
formulaRes(x, step);
}
public static void formulaRes(double a, double step)
{
Console.WriteLine("{0, 4} |{1, 4}", "x", "y");
Console.WriteLine("-----------");
for(int i = 0; i < 15; i++)
{
Console.WriteLine("{0,4} |{1,4}", Math.Round(a, 1), Math.Round(-2.3 * a + 5.6, 1));
a += step;
}
}
public static void fourthTask()
{
int number;
Console.WriteLine("Введите число:");
Console.Write("> ");
number = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Кол-во цифр четное?");
if (number.ToString().Length % 2 == 0) Console.WriteLine(true);
else Console.WriteLine(false);
Console.WriteLine("Число меньше 44?");
if (number < 44) Console.WriteLine(true);
else Console.WriteLine(false);
}
}
}
Здесь я описываю сами задачи.
Когда добавляется новая задача, ее надо добавлять в конструкцию switch. Я хочу сделать так, чтобы был перебор листа, в котором будут задачи. Принцип следующий: ввел номер - прошелся по листу - совпало - запустил.
Вопрос следующий: как добавить методы класса Tasks в лист, чтобы перебрать его или вы знаете способ проще?
Заранее спасибо!Источник: Stack Overflow на русском