библиотека ExtJS javascript имеет большой класс по имени Ext.util. TextMetrics, который "обеспечивает точные пиксельные измерения для блоков текста так, чтобы можно было определить точно, насколько высокий и широкий, в пикселях, данный блок текста будет". Можно или использовать его непосредственно или просмотреть его источник для кодирования, чтобы видеть, как это сделано.
http://docs.sencha.com/extjs/6.5.3/modern/Ext.util.TextMetrics.html
Согласно соглашению T
для универсальных типов (сопоставимых с «шаблонами» в C ++ и т. Д.).
Если существует единственный введите ( List
) тогда просто T
подойдет (объяснять больше нечего); но если существует несколько универсальных типов, T
ставит префикс цели. Следовательно, TKey
является общим типом «ключа», а TValue
значения. В этом случае поможет, если вы знаете, что словарь отображает ключи в значения!
Intellisense обычно сообщает вам, что означает каждый аргумент типа; например, с Func
:
T1
: тип первого параметра метода, который инкапсулирует этот делегат. T2
: Когда вы создаете универсальный класс, вы можете дать любое имя универсальному типу. По соглашению к нему добавляется префикс «T».
Я часто вижу шаблон, когда у вас есть только один общий тип, он называется «T», но когда у вас их более одного, у них есть явные имена ( как TKey и TValue), чтобы различать разные типы.
Это типы универсального. Заглавная T означает тип.
List<int> list;
В этом примере T
- это int
.
TKey
- тип ключа; TValue
- это тип значения.
например,
Dictionary
вводится в строку и возвращает int
По соглашению к именам типов в универсальных шаблонах следует добавлять заглавную букву T
Существует соглашение об использовании T для обозначения класса, на котором основан ваш общий класс (например, List
). Однако словарь основан на двух классах, поэтому они решили различать их с помощью суффикса Key и Value.
Они могли выбрать что угодно - где-нибудь в других сценариях, которые я видел, использовались T и U, а также другие последующие буквы (например, V , X и т. Д.), Если требуются дополнительные классы.
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