Tuple не представляет кортеж | |
---|---|
S-type Сообщений: 2969 Дата регистрации: 24.04.2004 |
На msdn.microsoft.com сказано:
Цитата: Приведён пример:
Переменная population имеет тип Tuple<string, int, int, int, int, int, int>. Не понятно, какой смысл вкладывается в "не представляет кортеж"? Может,это погрешности перевода? |
Re: Tuple не представляет кортеж | |
---|---|
Igor Korolyov Автор Сообщений: 34580 Дата регистрации: 28.05.2002 |
Смысл простой. Класс Tuple и класс, к примеру, Tuple<T1, T2> это два абсолютно разных класса. И если второй это один из видов "кортежа", то первый - не более чем вспомогательный класс, упрощающий создание "кортежей".
Не вижу сложностей с пониманием примера из MSDN - в одном случае чуть больше букв и напрямую вызывается конструктор кортежа, во втором - чуть меньше букв и вызывается метод этого класса-помощника который создаёт и возвращает кортеж. Автоматический вывод типов для generic методов как раз и позволяет сильно уменьшить писанину, т.к. не требуется ни перечислять все типы элементов кортежа, ни даже просто указывать их количество. ------------------ WBR, Igor |
Re: Tuple не представляет кортеж | |
---|---|
S-type Сообщений: 2969 Дата регистрации: 24.04.2004 |
Т.е. он нужен только для создания... Посмотрел - методы Create(...) есть только у класса Tuple, у классов Tuple<...> этих методов нет. Зато есть ToValueTuple (хотя, формально, это не метод это класса Tuple, это метод расширения класса TupleExtensions). Спасибо - теперь понятно. Исправлено 1 раз(а). Последнее : S-type, 18.04.17 10:18 |
Re: Tuple не представляет кортеж | |
---|---|
Igor Korolyov Автор Сообщений: 34580 Дата регистрации: 28.05.2002 |
Да, это своего рода фабрика. Это было бы странно - у этих классов есть конструктор, и большой пользы от статического метода Create в самих классах Tuple<...> я не вижу - делать перегрузки позволяющие создавать, к примеру, Tuple<T1,T2,T3> из метода Create класса Tuple<T1> - как-то не логично, да и слишком большое дублирование кода будет (если 3-кортеж может создавать класс 1-кортежа, то и все прочие n-кортежи должны иметь такую возможность - т.е. придётся во всех 8-ми классах делать все эти 8 методов-перегрузок). Плюс к тому не будет работать автоматический вывод типа (для обращения к самому классу, не для обращения к статическому методу), а значит сокращения писанины не будет. Т.е. это станет ну совсем уж бессмысленным. А так - в отдельном классе-фабрике хоть минимальная польза будет ------------------ WBR, Igor |
© 2000-2024 Fox Club  |