Добры день! Скорей всего я просто что-то простое упустил, но меня терзают сомнения.
И так в чем проблема. Есть свойство
short BaseGene<short>.Code { get; set; }
Кажется подвоха нет, но если проводить какие либо манипуляции при модульном тестирование с свойством, на пример:
Assert.IsNotNull(gene.Code);
то dotnet говорит: "Я сваливаю: 0xc00000fd" и еще в консольке пишет "Process is terminating due to StackOverflowException.".
гетеры и сетеры:
public T Code { get => Code; set => Code = value; }
Я совершенно не понимаю, где происходит переполнение, понимаю был бы бесконечный цикл, но нет...
Даже если:
GeneInt16 gene = new GeneInt16();
Assert.IsNotNull(gene);
И в конструкторе
public GeneInt16(int? seed = null, short min = short.MinValue, short max = short.MaxValue)
{
_random = (seed == null) ? new Random() : new Random((int)seed);
Code = (short)_random.Next(min, max);
}
То происходит то же самое.
Если вообще игнорировать существование Code, то все нормально тесты проходятся.
Важное замечание, если просто скомпилировать проект и его использовать, все нормально.