Вот допустим есть код:
Код1
Код2
Код3
Код1 код2 и код3 выполнились.
И здесь я уже ввожу goto(код1) Но мне нужно чтобы только код1 выполнился и все остальные игнорировались. Как это сделать?
Если есть выбор в реализации, я предложил бы разбить Код1, Код2, Код3 по функциям и вызывать их при определённых условиях из какой-то главной функции (как написал tym32167)
Если всё таки вам нужна реализация через goto, можно добавить статическую переменную, например:
bool shouldExecuteSection = true;
И общая идея будет следущая:
Код1: // метка, куда нужно вернуться
Код1
if (shouldExecuteSection)
{
Код2
Код3
}
shouldExecuteSection = false;
goto(Код1);
Но всё же, настоятельно не рекомендую использовать goto, так как это делает вашу программу непредсказуемой. Если это маленькая программа, это не очень замечается, но если приложение растёт в размерах, с разными модулями - время на отладку увеличивается в разы.
У вас есть несколько кусков кода, и они в разных ситуациях выполняются по разному? К примеру можно вот так сделать:
public class SomeClass
{
private readonly Strategy _strategy;
public SomeClass(Strategy strategy) => _strategy = strategy;
public SomeMethod()
{
if(_strategy.NeedCode1) Code1();
if(_strategy.NeedCode2) Code2();
if(_strategy.NeedCode3) Code3();
}
private void Code1()
{
//...
}
private void Code2()
{
//...
}
private void Code3()
{
//...
}
}
public class Strategy
{
public bool NeedCode1 {get; set;}
public bool NeedCode2 {get; set;}
public bool NeedCode3 {get; set;}
}
static int Main()
{
var some = new SomeClass(new Strategy{NeedCode1 = true});
some.SomeMethod();
}
Но есть и другие решения. Всё зависит от контекста. Главное чтобы было удобно использовать, легко читать, не перегружать ответсвенностью.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение
Есть класс, который унаследован от интерфейса IJobЭкемпляр этого класса у меня создается через реализацию интерфейс