język C#: modyfikatory parametru ref, out i params

Nie wiem czy się zastanawiałeś, ale zmienne wysyłane jako parametry do metody są kopiami bo działanie metody nie wpłynie na wysłaną zmienną i może się zastanawiałeś czy można zrobić tak żeby wysłana zmienna mogłaby być zmieniana w metodzie do której ją posłaliśmy, otóż do tego służą właśnie modyfikatory ref i out o których dzisiaj będzie mowa.

Modyfikator Ref

Posłużę się banalnym przykładem żeby można to łatwo zrozumieć, najpierw standardowy przykład wysyłania zmiennej jako argument do metody:

Wiadomo, że w konsoli pokaże się najpierw liczba zmieniona w metodzie ChangeSendArgument czyli 13, a potem liczba 12 czyli zmienna, którą wysłaliśmy jako argument, czyli zmienna „a” się nie zmieniła, a my chcemy żeby zmienna „a” wysyłana jako argument, jeśli zmieni się w metodzie do której tą zmienną wysłaliśmy to żeby zmieniła się również w miejscu w którym ją wysłaliśmy. Jak to zrobić, bardzo prosto, wystarczy dodać dwa słowa kluczowe:

Myśle, że ten przykład z komentarzami wystarczająco jasno to wyjaśnia, zwiększenie argumentu w metodzie ChangeSendArgument o jeden zmienia również zmienną „a” o jeden czyli można powiedzieć, że ze sobą wspópracują 🙂

Modyfikator Out

modyfikator out różni się tym od ref, że:

1.Nie musi mieć przypisanej wartości, zanim zostanie przekazany do funkcji.

2. Musi mieć przypisaną wartość, zanim wyjdzie z funkcji.

Poniżej przykład:

Tak jak wyżej w punktach opisane różni się tym że na początku nie ma wartości.

Modyfikator Params

Modyfikator params oznacza, że metoda może przyjąć dowolną liczbę argumentów. Poniżej przykład:

 

 
Jeśli ten wpis ci się przydał podziel się nim ze swoimi znajomymi :)

Post a comment

avatar
  Subscribe  
Notify about