К чему относится термин “Ограничение голого типа”?

StackOverflow https://stackoverflow.com/questions/1730545

  •  20-09-2019
  •  | 
  •  

Вопрос

Недавно я прочитал термин "ограничение голого типа" в контексте дженериков.Что это значит?Где мы его используем?

Это было полезно?

Решение

От MSDN:

Constraint          Description

where T : U         The type argument supplied for T must be or derive from
                    the argument supplied for U. This is called a naked type
                    constraint.

Когда параметр универсального типа используется в качестве ограничения, он называется ограничением голого типа.Ограничения голого типа полезны, когда функция-член со своим собственным параметром типа должна ограничить этот параметр параметром типа содержащего типа, как показано в следующем примере:

class List<T>
{
    void Add<U>(List<U> items) where U : T {/*...*/}
}

Другие советы

Кроме того, мне кажется странным, что этому несколько непристойному термину удалось попасть в документацию MSDN.Мы, конечно, не называем эти ограничения "ограничениями голого типа" в команде компиляторов C #, и я был шокирован, потрясен!обнаружить несколько лет назад, что именно об этом говорится в документации.Обычно мы называем их "ограничениями параметров типа".Я понятия не имею, как этот термин вообще попал в документацию;вероятно, там есть интересная история.

"Когда параметр универсального типа используется в качестве ограничения, это называется ограничением голого типа.Ограничения голого типа полезны, когда функция-член со своим собственным параметром типа должна ограничить этот параметр параметром типа содержащего типа"

http://msdn.microsoft.com/en-us/library/d5x73970.aspx

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top