Wybieranie ilości podanych parametrów (argumentów) w metodzie

0

Cześć. Chciałem zapytać, czy w języku c# podczas tworzenia metod można tak zrobić, że np, można wprowadzić dziesięć argumentów (parametrów?):

public void metoda_z_argumentami(int argument1, int argument2, int argument3, 
                                 int argument4, int argument5, int argument6, 
                                 int argument7, int argument8, int argument9,  int argument10)
{
 // tutaj już co się ma dziać z każdym argumentem (parametrem?)
}

I jeśli podczas tworzenia programu potrzebuję tylko trzy:

metoda_z_argumentami(10,5, 15);

To pozostałe zmienne (w tym przypadku int argument 4-10) wypełnią się zerem? Można to jakoś w kodzie zrobić?

Jestem świadomy tego, że mogę zrobić tak:

metoda_z_argumentami(10,5, 15, 0, 0, 0, 0, 0, 0, 0);

Ale przy argumencie z 30 metodami (i liczbami czterocyfrowymi) tego już się trochę robi więcej

Nie chciałbym tworzyć osobnych metod do ilości wprowadzanych argumentów (no chyba, że nie będzie wyboru)
Na chwilę obecną tak robię, a jeśli do metod gdzie mam wprowadzić 10 argumentów wprowadzę 9 to mi się pojawia błąd typu:

"There is no argument given that corresponds to the required formal parameter 'argument10' "

Dodam, że chodzi o środowisko visual studio 2015

Z góry dzięki za odpowiedź

1

Możesz użyć domyślnych wartości dla argumentów metody, np:

public void  MetodaZArgumentami(int argument1, int argument2 = 0)
{
  //...
}

Zastanowiłbym się czy Twoja metoda nie powinna przyjmować tablicy intów.

0
marmite napisał(a):

Możesz użyć domyślnych wartości dla argumentów metody, np:

public void  MetodaZArgumentami(int argument1, int argument2 = 0)
{
  //...
}

Zastanowiłbym się czy Twoja metoda nie powinna przyjmować tablicy intów.

Tablica intów by była świetnym rozwiązaniem. Jeszcze nie próbowałem. Jak mogę taką metodę utworzyć? Wiem jak się tworzy tablice, np:

int[] parametry = new int[29];

Jednak jak użyć tego w metodzie?

Jak wprowadzić domyślną wartość, jeśli kolejne argumenty nie będą miały podanej wartości (większych niż zero)?

1

Sprawa jest prosta:

public void Method(int[] args)	
{
//
}
4

A nawet jeszcze prostsza jeśli się użyje: public void Method(params int[] args).

2

Ja zadam inne pytanie, 10 argumentow w metodzie to okropna ilosc! Serio, nie powinienes uzywc jak ci pisali tablicy lub opakwoac to w obiekty? Czy tylko ja uwazam ze metody +10 argumentow to jakies popierdzielenie programowania i tworzenie potworow?

2

Pomijając Twoją opinię @Akihito, to Wujek Bob, który jest (bez urazy) większym autorytetem od Ciebie, w "Czystym kodzie" napisał coś w stylu (teraz piszę z pamięci bo nie mam książki pod ręką, więc pewnie lekko przekręcę, niemniej sens oddam):

Jeden argument jest spoko, 2 ujdą, 3 od biedy, a więcej oznacza, że coś jest skopane i jedynie w wyjątkowych sytuacjach takie rozwiązanie może być usprawiedliwione i dopuszczone.

1
cerrato napisał(a):

Pomijając Twoją opinię @Akihito, to Wujek Bob, który jest (bez urazy) większym autorytetem od Ciebie, w "Czystym kodzie" napisał coś w stylu (teraz piszę z pamięci bo nie mam książki pod ręką, więc pewnie lekko przekręcę, niemniej sens oddam):

Jeden argument jest spoko, 2 ujdą, 3 od biedy, a więcej oznacza, że coś jest skopane i jedynie w wyjątkowych sytuacjach takie rozwiązanie może być usprawiedliwione i dopuszczone.

Ile widzicie parametrów i argumentów.?

public int[] Method(params int[] args)
{
     return args;
}

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