Co zrobić w przypadku, gdy mam dwie metody różniące się tylko nazwą jednego z parametrów typu double? Nazwy znaczą zupełnie co innego, ale metoda robi z nimi to samo.
Moze napisz konkretnie o co chodzi...
Mam metodę:
Metoda(double nazwa, ...)
{coś}
Potrzebuje tą samą metodę, ale z inną nazwą jednego parametru:
Metoda(double innaNazwa, ...)
{ to samo coś}
Chodzi o to, że ma być metoda której jeden z parametrów może przyjąć różne nazwy. Przecież nie będę tego dublował.
Ale skoro ta metoda robi dokładnie to samo to ja nie rozumiem po co chcesz coś tak dziwnego zrobić. Nie możesz wywoływać jednej i tej samej metody? o_O
Wiem śmieszne. Ale jeżeli wywołuje metodą i podaje parametry i jeden z nich nie jest tym czym jest w rzeczywistości, to mnie to wkurza.
Ale to znaczy jedynie że źle nazwałes parametry tej metody albo metodę jako taką. Szukasz problemu tam gdzie go nie ma.
A w przypadku gdy ilość parametrów tego samego typu jest zmienna? Metoda jest prosta i zamiast np:
parametr1.Run
parametr2.Run
Można dać tablice parametrów i foreach. Ale to troche tez bezsensu, bo chciałbym móc te parametry rozróżniać, dla samej wiadomości w jakiej kolejności je podawać, bo ma ona znaczenie. To co mam dać słownik?
int DodajLiczby(params int[] liczby)
{
int suma = 0;
foreach(int x in liczby)
suma += x;
return suma;
}
@Manhattan, masz rację, jeśli masz 20 parametrów w metodzie, to masz brzydki kod. Metoda nie powinna mieć więcej niż 3, góra 5 parametrów.
Nie wiem, czy dobrze rozumiem Twój problem, ale być może potrzebujesz mieć w metodzie jeden parametr typu List<JakaśKlasa>
. Co dokładnie chcesz osiągnąć, możesz podać jakiś przykład?
W czystym kodzie z tego co pamiętam forsują zasadę, żeby 3 i więcej parametrów używać tylko w naprawdę wyjątkowych sytuacjach
Przykład:
Metoda przyjmuje np. 20 parametrów. Następnie wartości parametrów double przypisywane są do punktów i wykonywana jest metoda Run. Parametry muszą być podawane w odpowiedniej kolejności.
Metoda(double parametr1,..)
{
punkt1 = parametr1;
.
.
punkt1.Run;
.
.
}
Chyba można utworzyć klasę i dać listę typu tej klasy jako parametr. Może cały kod jest od początku źle zaprojektowany i za wszelką cenę unikać takich sytuacji?
Może cały kod jest od początku źle zaprojektowany i za wszelką cenę unikać takich sytuacji
Nie może
tylko ewidentnie...
W jakim przypadku warto zastosować klasę statyczną? Mógłby ktoś podać przykład, w którym lepszym rozwiązaniem jest klasa\metoda statyczna? Wiem, że w klasie math to jest i myślę że do podobnych konstrukcji się to stosuje, ale gdzie jest granica pomiędzy zwykła klasą a klasą statyczną? Lepiej nie nadużywać klas statycznych? Ja stosuje metody statyczne w metodach numerycznych.
A co ma klasa statyczna do przekazywania parametrów do metody?
Nic, sorry powinienem nowy temat założyć.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.