Это совсем не очень хорошая идея. У вас есть и класс Tuple
, и стандартный array
, которые оба имеют больше смысла в любом возможном случае использования. Однако это не отвечает на ваш вопрос, так что ...
Наиболее интуитивное имя для класса-оболочки должно соответствовать соглашению {type-name}Wrapper
или, например, Int32Wrapper
. В вашем случае обернутый объект является примитивным типом, поэтому имеет смысл назвать класс "Tuple" . Поскольку вы хотите указать размер кортежа в имени класса, {primitive-type-name}{size}Tuple
кажется наиболее интуитивным соглашением об именах, но это вызывает несколько проблем.
- Естественный язык, используемый для описания кортежей, создает неоднозначность (например,
Single
и Double
, потому что они конфликтуют с именами типов). (например, DoubleDouble
плохо)
- Целые числа используются в именовании некоторых примитивных типов, так что это может вызвать двусмысленность. (например,
Int322Tuple
плохо).
Мы не можем переместить размер в начало, например 2Int32Tuple
, поскольку целые числа не являются допустимыми символами для начала имени класса. Итак, я думаю, что есть два подхода, которые могут сработать.
Я думаю, что ваш лучший способ обойти эти ограничения - использовать {primitive-type-name}{text-represented-size}Tuple
соглашение. (например, Int32TwoTuple
или DoubleTwoTuple
). Это соглашение выражает содержимое класса-оболочки без двусмысленности, так что это кажется хорошим подходом. Кроме того, имя начинается с имени типа примитива, поэтому, если у вас много этих классов, вашему IntelliSense будет проще ввести правильное имя класса, и оно будет в алфавитном порядке перечисляться рядом с типом примитива, который быть завернутым.