Опасный баг в Unity3d Mono

в 20:45, , рубрики: Песочница, метки: , , ,

Доброе время суток.

Хочу с вами поделиться информацией о страшном баге, который не просто найти.

Суть в чем: допустим у вас есть класс SomeClass, у которого есть публичное поле int или float или bool, которое по умолчанию проинициализировано конкретным значением. Пример:

public class SomeClass
{
    public int SomeValue = 1;
}

После чего вы в каком-то месте создаете экземпляр этого класса, используете инициализатор и приравниваете SomeValue — стандартное значение (ноль либо false в случае bool):

SomeClass a = new SomeClass { SomeValue = 0 };


В итоге a.SomeValue будет равно 1. Если же в инициализаторе будет не стандартное значение — всё будет работать корректно. Например:

SomeClass a = new SomeClass { SomeValue = 5 };

a.SomeValue будет равно 5.


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js