Как это можно оптимизировать?

179
13 февраля 2019, 04:00

Как это можно оптимизировать и привести в нормальный вид?

public void NewGenerating()
{
    Generating = Random.Range(1, 5);
    if (Generating == 1)
    {
    }
    if (Generating == 2)
    {
    }
    if (Generating == 3)
    {
    }
    if (Generating == 4)
    {
    }
    if (Generating == 5)
    {
    }
}
Answer 1

Обычное ветвление с использованием условного оператора не является чем-то зазорным. Пока ветки не содержат вложенных инструкций, блок кода может выглядеть излишне раздутым, но это перестанет быть таковым, когда в условиях будет реализация.

C# также позволяет осуществлять ветвление с помощью оператора switch. Однако следует понимать, что выражения во всех case должны быть одного и того же типа.

public void NewGenerating()
{
    Random r = new Random();
    switch (r.Next(1, 5))
    {
        case 1:
            break;
        case 2:
            break;
        case 3:
            break;
        case 4:
            break;
        case 5:
            break;
    }
}

Также можно использовать словарь значений Dictionary(int, Action). В качестве ключа - сгенерированное число, в качестве значения - функция с инструкциями, которая позже вызывается.

public void NewGenerating()
{
    Dictionary<int, Action> vars = new Dictionary<int, Action>();
    vars.Add(1, () => { /*Console.WriteLine("1 was generated");*/ });
    vars.Add(2, () => { });
    vars.Add(3, () => { });
    vars.Add(4, () => { });
    vars.Add(5, () => { });
    Random r = new Random();
    Action ac = vars[r.Next(1, 5)];
    ac();
}
READ ALSO
Удалить неизвестные символы

Удалить неизвестные символы

Программа берет из реестра значение ключа, но в полученной строке есть неизвестные символы, которые мешают правильной обработки строкСама...

157
Стоит ли обрабатывать входную строку? Laravel Eloquent

Стоит ли обрабатывать входную строку? Laravel Eloquent

Есть код, который обновляет имя пользователя

174
Убрать последнюю запятую в строке PHP

Убрать последнюю запятую в строке PHP

Всем привет, есть такая вот строка

220