В C # что это where T : class
значит?
То есть.
public IList<T> DoThis<T>() where T : class
Проще говоря, это ограничение общего параметра классом (или, более конкретно, ссылочным типом, который может быть классом, интерфейсом, делегатом или типом массива).
См. Эту статью MSDN для получения дополнительной информации.
Это ограничение общего типа . В этом случае это означает, что универсальный тип
T
должен быть ссылочным типом (класс, интерфейс, делегат или тип массива).источник
Это ограничение типа
T
, указывающее, что это должен быть класс.Предложение
where
может использоваться для указания ограничений другого типа, например:Для получения дополнительной информации посетите страницу MSDN с
where
предложением или общие ограничения параметров .источник
where T : class, IComparable, new()
Это ограничивает
T
для ссылочных типов . Вы не сможете поместить туда типы значений (struct
кроме типов s и примитивовstring
).источник
это означает, что тип, используемый
T
при использовании универсального метода, должен быть классом, т. е. он не может быть структурой или встроенным числом типаint
илиdouble
источник
where T: class
буквально означает этоT has to be a class
. Это может быть любой ссылочный тип. Теперь , когда любой код вызывает вашDoThis<T>()
метод , который он должен обеспечить класс для замены T . Например, если бы я вызвал вашDoThis<T>()
метод, мне пришлось бы вызывать его следующим образом:Если ваш метод похож на следующее:
Затем, где бы T ни появлялся в вашем методе, он будет заменен MyClass. Итак, последний метод, который вызывает компилятор, будет выглядеть следующим образом:
источник
new T()
невозможно сwhere T : class
. Вы должны указать,where T: new()
чтобы иметь возможность сделать это.Это называется ограничением параметра типа. Фактически это ограничивает тип T.
Ограничения на параметры типа (Руководство по программированию в C #)
источник
T представляет собой объектный тип, это означает, что вы можете предоставить любой тип. IList: если IList s = новый IList; Теперь s.add («Всегда принимать строку»).
источник
Здесь T относится к классу. Это может быть ссылочный тип.
источник
«T» представляет собой общий тип. Это означает, что он может принимать любой тип класса. Следующая статья может помочь:
источник