В мире много хороших игр, но совсем немногие открывают исходный код. В этой статье мы познакомимся с тремя лучшими Open Source играми на C# и разберём наиболее интересные ошибки, найденные в их исходном коде.
private void OnSmokeSpread(....)
{
if (.... || args.NeighborFreeTiles.Count == 0)
{
....
return;
}
....
if (args.NeighborFreeTiles.Count == 0 && ....) //
В этом примере args.NeighborFreeTiles - список (List), ссылочный тип. Его может мутировать что-то снаружи функции. Проблема есть, но проверка имеет место быть