Как сделать изменение значения bool со второго раза

Необходимо чтобы bool переменная меняла свое значение не просто потому что я присвоил ей новое значение в методе, а делала это когда этот метод вызывается повторно(либо n-ое количество раз) я не знаю возможно ли так сделать, на ум только приходит использовать числовую переменную int и сравнивать числа вместо bool, но это как то криво, помогите пожалуйста.


Ответы (2 шт):

Автор решения: Aarnihauta

Без какого-нибудь счетчика я думаю это сделать нельзя (но это я так думаю)

Я бы сделал следующим образом:

class MyClass
{
   private int _countOfExecute = 0;
   
   public bool ExecutedMoreOne => _countOfExecute > 1;

   public void MyMethod()
   {
       //какие-то действия
       _countOfExecute++;
   }
}

Первый вызов метода: MyMethod(), _countOfExecute = 1, соответственно ExecutedMoreOne = false

Второй вызов метода: _countOfExecute = 2, а значит ExecutedMoreOne = true. Конечно, названия булевого свойства можно изменить на то, которое вам нужно по задаче

→ Ссылка
Автор решения: ruben2176

Ну смотри в принципе в языках само по себе ничего не происходит, и всегда всё надо делать самому(мыж усëтаки програмистеры) но как вариант может через ссылочные типы так:

void mainf(ref bool in, ..входные парамеиры...) 
{

... Ваш код... 

Там где надо пишем 

in = !in;

... Ваш код... 

}

И при вызове

Bool statusf = true;

statusf(ref in, ... Ваши параметры...);

Ключевое слово реф указывает что передать нужно не значение переменной а адрес на неё соответственно изменяя его в функции вы автоматически вы его меняете непосредственно в коде где она объявленна.

https://docs.microsoft.com/ru-ru/dotnet/csharp/language-reference/keywords/ref

→ Ссылка