Modyfikacja metody, zmiana argumentów

0

Hej,
Być może banalne pytanie, ale zastanawiam się, czy aby na pewno robię to prawidłowo. Załóżmy, że mam metodę, którą po jakimś czasie potrzebuję zmodyfikować. Przy okazji modyfikacji, dochodzą kolejne nowe argumenty/zastępuje istniejące argumenty innymi. I teraz po modyfikacji sygnatury tej metody, musiałbym zmieniać ją w każdym miejscu, w którym jej użyłem.
Wydaje mi się, iż jest to nieodpowiednie, gdyż wymusza potem modyfikację w nawet wielu miejscach kodu. Jak należy podchodzić do tej sytuacji?

1

Poczytaj o przeciążaniu metod, może to będzie odpowiedź na twój problem.

0

Void f(int a, int b =0, string c="Text")
O to chodzi?

0

Przeciążanie metod polega na tym że metody mają tę samą nazwę ale różnią się od siebie parametrami , typ zwracany nie ma znaczenia. Tak jak np. z metodą WriteLine klasy Console .

Pytanie czy potrzebne jest ci klika wersji metod czy jedna dobra ? Po ostatnich twoich postach myślałem że ty jesteś bardziej zaawansowany .
Parametry mogą mieć jeszcze modyfikatory ref , out , param , mogą być pozycyjne, nazwane , opcjonalne , Parametry wyjściowe - out, można również odrzucać . Zamiast argumentu w wywołaniu metody podajesz znak podkreślenia .

0

Popełniłem błąd wyżej . Są argumenty nazwane a nie parametry

1
Wielki Terrorysta napisał(a):

Wydaje mi się, iż jest to nieodpowiednie, gdyż wymusza potem modyfikację w nawet wielu miejscach kodu. Jak należy podchodzić do tej sytuacji?

Czasami tak po prostu się zdarza i nie da się nic z tym zrobić. Ale często przyczyną takiej sytuacji jest przekazywanie do metody wielu parametrów zamiast jednego. Np taka metoda:

public void Metoda(int i, string s, bool b)

zamienia się w taką:

public void Metoda(int i, string s, bool b, double d)

i wtedy jest problem.
Ale jakby metoda od początku wyglądała tak:

public void Metoda(Obiekt o)

gdzie Obiekt to oczywiście:

class Obiekt
{
    Int I { get; set; }
    string S { get; set; }
    bool B { get; set; }
}

to problemu by nie było.

Druga rada to po prostu wywoływać jedną metodę w jednym miejscu. Z kodem biznesowym zazwyczaj jest to osiągalne. Metody używane w wielu miesjcach to raczej infrastruktura, a ta nie powinna się zmieniać.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0