Я прочитал несколько других вопросов по теме нулевых типов в Generics, и я до сих пор не понимаю, почему minmaxbase и myintdecl compile и yourintdecl нет.
. 'IminmaxDecl.minvalue'. 'Yourintdecl.minvalue' не может реализовать «iminmaxdecl.minvalue», потому что у него нет соответствующего типа возврата «коротко». PARAM PARAM INT16), но с ограничением я получаю эту ошибку: < /p>
Тип «Шорт?» Нельзя использовать в качестве параметра типа «t» в общем типе или методе «IminMaxDecl». Нулевой тип «Шорт?» не удовлетворяет ограничению «system.icoparable». Нулевые типы не могут удовлетворить какие -либо ограничения интерфейса.public interface IMinMaxDecl where T : IComparable
{
T? MinValue { get; set; } // needs to be nullable because it is optional
T? MaxValue { get; set; } // needs to be nullable because it is optional
}
public abstract class MinMaxBase : IMinMaxDecl where T : IComparable
{
public T? MinValue { get; set; }
public T? MaxValue { get; set; }
}
public class MyIntDecl : MinMaxBase; // compiles fine
public class YourIntDecl : IMinMaxDecl
{
public Int16? MinValue { get; set; }
public Int16? MaxValue { get; set; }
}
Подробнее здесь: https://stackoverflow.com/questions/796 ... -interface