Без проверки, если act равно null, когда вы вызываете Test () во второй раз, он назначает новую встроенную функцию для действия.
Каждый inline act () имеет доступ к разной версии счетчика впамять кучи.
Чтобы понять, подумайте, что компилятор "напоминает", что каждое действие имеет доступ к последнему вызову пространства памяти Test.
Каждый раз, когда вызывается Test, он создает отдельную кучупробел, поэтому count имеет другое значение.
Если вы проверяете, является ли act нулевым, и не создаете новую встроенную функцию act, действие использует только один счет.
Если вы создаете новый акт из-зане проверяя нулевое значение, каждое действие имеет доступ к новой версии счетчика, как если бы это был новый экземпляр объекта, имеющего счет в качестве члена.