Нулевое свойство в общем интерфейсе ⇐ C#

Место общения программистов C#
Anonymous
Нулевое свойство в общем интерфейсе

Сообщение Anonymous »

Я прочитал несколько других вопросов по теме нулевых типов в 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

Вернуться в «C#»