Na początku spoko, ale gdy przyjdzie ci uporządkować 15 plików w projekcie, to bez struktur/obiektów będziesz gorzko płakał :D
Z czasem docenisz to podejście. Łatwiej jest przesłać jako parametr jeden obiekt niż powiedzmy 5 parametrów będących typami prostymi.
Powiedzmy, że masz program automatycznie konfigurujący kartę sieciową- jego parametrami będą adres ip, maska podsieci, brama domyślna, główny dns i alternatywny dns- 5 parametrów. Wywołanie mogłoby wyglądać tak:
Configure("192.168.1.4", "255.255.255.0", "192.168.1.1" , "8.8.8.8","8.8.4.4");
Wiadomo, można to wcześniej użyć zmiennych i zrobić to tak:
Configure(ip, maskaPodsieci, bramaDomyslna, primaryDns, altDns);
Wyobraź sobie, że wszystkie twoje funkcje tak wyglądają, a masz ich ze 40 :D
A możesz sobie stworzyć obiekt, który bedzie w sobie zawierał wszystkie informacje które zapisałem powyżej, i wywołanie wyglądałoby po prostu tak:
Configure(networkConfiguration);
Gdzie "networkConfiguration" jest obiektem jakiejś klasy, która zawiera te wszystkie dane. Wywołanie tej metody można niemal przeczytać jak zdanie po angielsku- takiego kodu nie trzeba komentować. ;)