Как вырваться из использования блока внутри класса IDisposable - PullRequest
0 голосов
/ 17 октября 2018

Я получил одноразовый класс со следующим конструктором:

 public MyClass(bool allowed){
    if(allowed) return;
    else { // leave outer using }
}

И он используется вот так

using (new MyClass(false))
{
   DoSomething();
}

Или как следующий

using (new MyClass(true))
{
   DoSomething();
}

Какдобиться того, чтобы только тот, который вызывался с (true), выполнял блок (он же DoSomething ()), а если он вызывался с (false), он не исполнял блок?

Ответы [ 2 ]

0 голосов
/ 17 октября 2018

Поскольку предыдущего ответа было недостаточно, я бы предложил добавить в MyClass открытое свойство, которое можно использовать для получения логического значения и проверки этого в операторе using.

0 голосов
/ 17 октября 2018

Почему бы не использовать логическое значение

var b = true;// or false
using (new MyClass(b))
{
    if(b)
        DoSomething();
}
...