Что означает термин «ограничение типа« Голый »»? - PullRequest
12 голосов
/ 13 ноября 2009

Недавно я прочитал термин «ограничение обнаженного типа» в контексте Обобщения Что это имею в виду? Где мы это используем?

Ответы [ 3 ]

24 голосов
/ 14 ноября 2009

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

14 голосов
/ 13 ноября 2009

С 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 {/*...*/}
}
6 голосов
/ 13 ноября 2009

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...