2015-06-30 4 views
5

Nie widzę użycia 1-tki w języku C#. Dlaczego programiści z nich korzystają?Dlaczego warto używać 1-tki, Tuple <T1> w języku C#?

Tuple Class

Widziałem deklarację jak poniżej:

Tuple<string> state;

Ale zastanawiam się, czy istnieją dalsze zastosowania.

+0

co widziałeś? –

+0

, ponieważ możemy użyć 'Tuple >'? –

+0

Osobiście trzymam się z daleka od krotek, ponieważ są dla mnie raczej niejasne i czuję się trochę leniwie (może coś mi brakuje). Stworzenie klasy do przechowywania mówi, że szereg danych jest moim zdaniem bardziej jednoznaczny. – Jeb

Odpowiedz

8

klas krotki tylko udać się do 7. Kiedy trzeba 8-krotka, trzeba użyć

Tuple<T1, T2, T3, T4, T5, T6, T7, Tuple<T8>> 

Ale jeśli potrzebujesz 8 pozycji, prawdopodobnie chcesz przeprojektować swoją aplikację.

Możesz iść tak daleko, jak chcesz, o ile łańcuchy razem. 15 przedmiotów

Tuple<T1, T2, T3, T4, T5, T6, T7, 
    Tuple<T8, T9, T10, T11, T12, T13, T14, Tuple<T15>>> 

Zauważmy, że C# rzuci wyjątek czasu wykonywania jeżeli ostatnia pozycja (TREST) ​​nie jest krotka (ponieważ nie może być egzekwowane w czasie kompilacji ponieważ interfejs ITuple jest internal)

+0

@xanatos Otrzymasz wyjątek środowiska wykonawczego, ponieważ int nie implementuje ITuple. –

+0

A potem zrobisz t.Rest.Item1? To nie jest jednolite. – Andrey

+0

@Denis_E Fascynujące ... Powinieneś napisać to w odpowiedzi. Biorąc pod uwagę, że mieli "wewnętrzny interfejs ITuple", którego używali na wszystkich 'Tuple', to dziwne, że go nie używali. – xanatos

Powiązane problemy