Sequence of Commands
Здравйте колеги!
Тази задача съм я решил, но се чудех едно, как става така че всички методи са void пък "array" се променя като мине през тях?
Ето го кода http://pastebin.com/fD4aH7JV
Благодаря предварително!
Здравйте колеги!
Тази задача съм я решил, но се чудех едно, как става така че всички методи са void пък "array" се променя като мине през тях?
Ето го кода http://pastebin.com/fD4aH7JV
Благодаря предварително!
Според мен ,когато параметрите на метод са от примитивен тип-int,string,char се работи с техни копия(освен ако не се укаже явно чрез ключовата дума "ref" ,че се работи със самите тях),а когато типа на параметъра на метод е по сложен-array,List и т.н се работи със самите подадени аргументи на метода,а не с техни копия.
http://www.introprogramming.info/intro-csharp-book/read-online/glava9-metodi/
Потърси
"Подаване на аргументи от примитивен тип"
"Подаване на аргументи от референтен тип"
В Глава 9 -Методи от книгата
Защото скоупа на масива е цялата програма. Това, че метода не връща стойност, не значи, че не може да променя променливи.
Крайната цел на void методите, е че те четат и/или отпечатват нещо на конзолата.
А какво нещо ( какви променливи, стрингове и т.н. също и какви матем. операции се извършват) във void метода - няма значение - като крайната цел е да се оптечати нещо на конзолата, като при това вътре м метода променливите или масивите и т.н. могат да се променят - и те не връщат стойност, която в последствие можеш да ползваш някъде.
Докъто при др. методи се връща някаква стойност, която в последстие можеш да използваш където трябва ( поне така си го обяснявам - сега - ако в последствие се учат др. методи - ще разберем).
Ами аз всъщност си направих един тест. Той беше следния:
Направих си една променлива от тип "int" и един масив от промеливи от тип "int". Създадох след това метод за добавяне на 2 към кум самостоятелния инт и две към всеки инт от масива. След това печатам. Това което стана беше, че самостоятелния инт не се беше променил, а интовете в масива се бяха увеличили с две всеки.
Интересно!