Есть метод A и методы B,С,D,E.
Нужно метод A выполнить перед каждым методом B,С,D,E, когда они будут запускаться и если метод A будет false, то выйти и не выполнять следующий код.
Фактически нужно вписать выполнение метода А в каждый из методов.
Но есть ли какой-то лучшей способ обёртки, что б не прописывать одинаковые действия в каждом из методов и наследовать класс А (с методом А) и пропускать всё через него?
bool A()
{
bool result = false;
// действия
return result; // если тут вернёт false, ваши методы будут прекращать работу
}
void B()
{
if (!A()) return;
// Действия
}
Аналогично, как в B(), будет и в других методах (C-E)
Также есть вариант с использованием делегатов
delegate bool MyDelegate;
public Main()
{
MyDelegate = A;
}
bool A()
{
bool result = false;
// действия
return result; // если тут вернёт false, ваши методы будут прекращать работу
}
void B()
{
if (!MyDelegate.Invoke()) return;
// Действия
}
bool Проверка()
{
return true; // вернуть false если что-то не так
}
void ОбычныйМетод()
{
if (!Проверка()) return;
// какие-то действия
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости