Что такое TKey и TValue в универсальном словаре?

библиотека ExtJS javascript имеет большой класс по имени Ext.util. TextMetrics, который "обеспечивает точные пиксельные измерения для блоков текста так, чтобы можно было определить точно, насколько высокий и широкий, в пикселях, данный блок текста будет". Можно или использовать его непосредственно или просмотреть его источник для кодирования, чтобы видеть, как это сделано.

http://docs.sencha.com/extjs/6.5.3/modern/Ext.util.TextMetrics.html

17
задан Blankman 8 July 2009 в 13:21
поделиться

7 ответов

Согласно соглашению T для универсальных типов (сопоставимых с «шаблонами» в C ++ и т. Д.).

Если существует единственный введите ( List ) тогда просто T подойдет (объяснять больше нечего); но если существует несколько универсальных типов, T ставит префикс цели. Следовательно, TKey является общим типом «ключа», а TValue значения. В этом случае поможет, если вы знаете, что словарь отображает ключи в значения!

Intellisense обычно сообщает вам, что означает каждый аргумент типа; например, с Func :

  • T1 : тип первого параметра метода, который инкапсулирует этот делегат.
  • T2 :
23
ответ дан 30 November 2019 в 11:22
поделиться

Когда вы создаете универсальный класс, вы можете дать любое имя универсальному типу. По соглашению к нему добавляется префикс «T».

Я часто вижу шаблон, когда у вас есть только один общий тип, он называется «T», но когда у вас их более одного, у них есть явные имена ( как TKey и TValue), чтобы различать разные типы.

2
ответ дан 30 November 2019 в 11:22
поделиться

Это типы универсального. Заглавная T означает тип.

List<int> list;

В этом примере T - это int .

0
ответ дан 30 November 2019 в 11:22
поделиться

TKey - тип ключа; TValue - это тип значения.

например,

Dictionary вводится в строку и возвращает int

2
ответ дан 30 November 2019 в 11:22
поделиться

По соглашению к именам типов в универсальных шаблонах следует добавлять заглавную букву T

Лучшие практики обобщения

14
ответ дан 30 November 2019 в 11:22
поделиться

Существует соглашение об использовании T для обозначения класса, на котором основан ваш общий класс (например, List ). Однако словарь основан на двух классах, поэтому они решили различать их с помощью суффикса Key и Value.

Они могли выбрать что угодно - где-нибудь в других сценариях, которые я видел, использовались T и U, а также другие последующие буквы (например, V , X и т. Д.), Если требуются дополнительные классы.

0
ответ дан 30 November 2019 в 11:22
поделиться

A dictionary is a key/value store. In Dictionary TKey is the type of the Key, and TValue is the Type of the Value.

It is recommended that you use a similar naming convention if possible in your own generics when there is nore than one type parameter. Otherwise, we get MyGeneric

0
ответ дан 30 November 2019 в 11:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: