Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

C# Помогите пожалуйста

Илья Тарасенко Знаток (257), на голосовании 8 месяцев назад
Очень нужна помощь. Как вызвать метод с названием как у значения переменной string? Вообще моя задача это сделать такую проверку:

for(int i = 0; i < 14; i++;)
{
if( collision.gameObject.name == "finish" + i.ToString())
{
level(здесь должно быть значение i, то есть чтобы вызывался метод level1, level2 и т.п.)();
}
}
И вот как сделать так чтобы метод который нужно вызвать зависил от значения i?
Голосование за лучший ответ
Руслан Сафин Знаток (436) 9 месяцев назад
Тебе действительно следует хорошенько осмыслить как ты пишешь свой код, выглядит и звучит ужасно, но если очень нужно то можешь попробовать что-то типо такого:

 public class Program
{
public static void Main()
{
int levelsCount = 14;

for (int i = 0; i < levelsCount; i++)
{
string levelName = $"finish{i}";

if (collision.gameObject.name == levelName)
{
CorrelateLevelsAndMethods(i);
}
}
}

private static void CorrelateLevelsAndMethods(int levelNumber)
{
switch (levelNumber)
{
case 1:
Method1();
break;

case 2:
Method2();
break;

case 3:
Method3();
break;

// ...

default:
// Console.WriteLine("Level not found.");
break;
}
}
}
Похожие вопросы