Duża liczba parametrów w metodzie

Duża liczba parametrów w metodzie
  • Rejestracja: dni
  • Ostatnio: dni
0

Cześć. Potrzebuję(chyba jeszcze myślę jak to w inny sposób rozwiązać ) pisać metody które mają po 100 parametrów i więcej. Czy poniższa konstrukcja jest poprawna?

Kopiuj
 Metoda(List<double> ...)

Nie wiem jak to zrobić, może zrezygnuje z parametrów, bo przecież nie będę wypisał 100 i więcej parametrów.

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
0

Taka konstrukcja pozwala mieć jeden parametr będący listą liczb, a nie 100 parametrów.

Degusto
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Piła
  • Postów: 70
3

Chyba o to chodziło:

Kopiuj
class Program
    {
        static void Main(string[] args)
        {
            Foo(1, 2, 3, 4, 5);
        }
        static void Foo(params int[] tab)
        {
           foreach(int element in tab)
            {
                Console.WriteLine(element);
            }
        }
    }
  • Rejestracja: dni
  • Ostatnio: dni
0

Chodziło mi to, żeby to była "lista parametrów", raczej wolałbym nie używać tablic parametrów.

Degusto
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Piła
  • Postów: 70
0

Dla list to na przykład tak:

Kopiuj
class Program
    {
        static void Main(string[] args)
        {
            List<int> list = new List<int>();

            for (int i = 1; i <= 5; i++)
            {
                list.Add(i);
            }

            Foo(list);
        }
        static void Foo(List<int> tab)
        {
            foreach(int element in tab)
            {
                Console.WriteLine(element);
            }
        }
    }
Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
2

Potrzebuję(chyba jeszcze myślę jak to w inny sposób rozwiązać ) pisać metody które mają po 100 parametrów i więcej.

Chciałbym zobaczyć jak wywołujesz taką metodę. Poważnie. I do tego jak robisz to nie myląc na przykład kolejności tych twoich parametrów. A potem jak siwiejesz próbując ten kod debugować. Idę o zakład że te parametry da się pogrupować w jakieś sensowne klasy...

  • Rejestracja: dni
  • Ostatnio: dni
0

Parametry są już pogrupowane w klasy, ale w tych klasach parametry dalej są różne np. ( cena złota, cena srebra .. itd.) i to będzie należeć do jednej klasy itd. Kwestia tego, że jest tego dużo,
ilość parametrów będzie znana na daną chwile. Mam zmienić kod, w którym wcześniej było 5 parametrów, a teraz ilość jest powyżej 100.

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
1

W takim razie chcesz mieć JEDEN parametr, który będzie kolekcją, a nie DUŻO parametrów.

Degusto
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Piła
  • Postów: 70
0

Może po prostu wstaw swój kod tego co masz.

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
4

@andrzejek jedyne co mogę ci zalecić:
user image
Poważnie. Bo nie wyobrażam sobie kodu który takiego potworka wywołuje a co dopiero jakby go miał używać. Wyczuwam tutaj ekstremalny copy-paste. Zaręczam ci że z czymś takim będzie dużo więcej problemu niż z przepisaniem tego po ludzku.

  • Rejestracja: dni
  • Ostatnio: dni
0

A mniejsza z tym. Dostałem to zadanie w pracy, bo wszyscy programiści się ulotnili a nawet nie jestem programistą. I klas mam nie zmieniać. Mam wrażenie, że sobie ze mnie przysłowiowe jaja robią.

Koziołek
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Stacktrace
  • Postów: 6822
1

Masz najprawdopodobniej zły pomysł na refaktoryzację kodu. Skoro na początku mamy 5 parametrów i nagle ilość rośnie do 100 to oznacza, zgaduję lecz pewno nie mylę się zbytnio, że chcesz w parametry upchnąć coś co powinno być reprezentowane przez

  • kolekcję - nienazwane i niezależne parametry jednego typu
  • tablicę - jw. przy czym parametry są zależne bądź kolejność ma znaczenie
  • strukturę - parametry są nazwane tzn. każdy z nich reprezentuje tak naprawdę trochę inny byt (cena złota, cena srebra, cena buttcoina itd.) i jest użyty w metodzie w znaczący sposób (ifologia).

Inna sprawa to kwestia tego czy metoda, która już teraz przyjmuje 5 parametrów nie jest przez przypadek przeładowana.

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
0

bo wszyscy programiści się ulotnili a nawet nie jestem programistą

No biorąc pod uwagę jakie "taski" mają w tej firmie to ja im się nie dziwię. Tobie też zalecam takie wyjście ;]

LukeJL
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 8487
1

w WinAPI powszechnie stosowaną metodą jest (a przynajmniej było jak tym programowałem) upakowywanie parametrów w struktury i żądanie przez funkcje podania wskaźnika do tej struktury.

Więc mysle. że tak mozna by zrobić chociazby.

fasadin
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4883
0

jezeli jest 100 parametrow to ile linijek musi byc :D?

bogdans
  • Rejestracja: dni
  • Ostatnio: dni
2

Mały OT. Jak wyglądałoby w Clipperze wywołanie funkcji ze 100 parametrami, zdecydowana większość (a może wszystkie) ma wartości domyślne, chcemy w wywołaniu zmienić 50-ty i setny parametr.
Definicja:

Kopiuj
FUNC oCholera(z1,z2,z3,z4,....
IF z1 == NULL
   z1 = 35
ENDIF
...
IF z100 == NULL
  z100 = "jasna d*a"
ENDIF

Wywołanie:

Kopiuj
oCholera(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,134,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,204)

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.