Por que o novo compartilhador sugere "agrupar variável na matriz" para acessar os avisos de fechamento modificado

Dado o seguinte código (pseudo-) fortemente editado:

int count = 0;
thing.Stub(m => m.AddBlah()).WhenCalled(o => count++);
thing.Stub(m => m.RemoveBlah()).WhenCalled(o => count--);

DoStuff(thing);

Assert.AreEqual(1, count);

@ReSharper fornece um aviso na contagem - "Acesso ao fechamento modificado". Entendo por que estou recebendo esse aviso (a variável count está sendo modificada em duas lambdas diferentes e provavelmente possui semânticas indesejáveis), mas não entendo o conselho do ReSharper: "Quebra variável local em array". Se eu deixar o ReSharper fazer isso, recebo:

int count[] = { 0 };
thing.Stub(m => m.AddBlah()).WhenCalled(o => count[0]++);
thing.Stub(m => m.RemoveBlah()).WhenCalled(o => count[0]--);

DoStuff(thing);

Assert.AreEqual(1, count[0]);

E nenhum aviso.

Por que usar uma matriz segura?

questionAnswers(2)

yourAnswerToTheQuestion