Osobiście uważam, że krotki są iteracyjną częścią rozwoju, gdy jesteś w cyklu badawczym lub po prostu „grasz”. Ponieważ krotka jest ogólna, myślę o niej podczas pracy z parametrami ogólnymi - szczególnie gdy chcę opracować ogólny fragment kodu i zaczynam od końca kodu, zamiast zadawać sobie pytanie „jak chciałbym to wywołanie patrzeć?".
Dość często zdaję sobie sprawę, że kolekcja, którą tworzy krotka, staje się częścią listy, a wpatrywanie się w List> tak naprawdę nie wyraża intencji listy ani tego, jak ona działa. Często z tym „żyję”, ale mam ochotę manipulować listą i zmieniać wartość - w tym momencie niekoniecznie chcę tworzyć nową krotkę, dlatego muszę utworzyć własną klasę lub strukturę aby go zatrzymać, więc mogę dodać kod manipulacji.
Oczywiście zawsze istnieją metody rozszerzające - ale dość często nie chcesz rozszerzać tego dodatkowego kodu na implementacje ogólne.
Czasami chciałem wyrazić dane jako krotka i nie miałem dostępnych krotek. (VS2008) w takim przypadku właśnie utworzyłem własną klasę Tuple - i nie ustawiam jej jako bezpiecznej dla wątków (niezmiennej).
Myślę więc, że jestem zdania, że krotki są leniwym programowaniem kosztem utraty nazwy typu, która opisuje jego przeznaczenie. Innym kosztem jest to, że musisz zadeklarować podpis krotki, gdziekolwiek jest ona używana jako parametr. Po kilku metodach, które zaczynają wyglądać na rozdęte, możesz poczuć, tak jak ja, że warto utworzyć klasę, ponieważ czyści ona sygnatury metod.
Zwykle zaczynam od publicznego członka klasy, w której już pracujesz. Ale w momencie, gdy wykracza poza zwykły zbiór wartości, pobiera swój własny plik i przenoszę go z klasy zawierającej.
Z perspektywy czasu wydaje mi się, że używam krotek, gdy nie chcę wychodzić i pisać zajęć, a po prostu chcę pomyśleć o tym, co piszę teraz. Co oznacza, że podpis krotki może się bardzo zmienić w tekście przez pół godziny, podczas gdy ja zastanawiam się, jakich danych będę potrzebować dla tej metody i jak zwraca wszystkie wartości, które zwróci.
Jeśli dostanę szansę na refaktoryzację kodu, często będę kwestionować miejsce w nim krotki.