Цомпарисон Цхарт
Основа за поређење | Реф | Оут |
---|---|---|
Басиц | Омогућава промену вредности аргумента настављену кључном речи реф. | Омогућава методу да врати оне вредности којима претходи кључна реч оут. |
Инитиализатион | Параметар реф мора бити иницијализован пре позива методе. | Оут параметар мора бити иницијализован унутар позваног метода пре него што се заврши. |
Декларација | Параметар који се мења методом декларише се као реф док се декларација метода и метода позива. | Параметар који се враћа мора бити декларисан као реф док декларација метода и метода позива. |
Дефиниција кључне речи
"Реф" је модификатор параметара који се користи када постоји потреба за позивањем методе са позивом по референци. Када желимо да се промене у аргументима унутар позваног метода морају одразити у оригиналној вредности те променљиве, онда се користи модификатор параметра реф. Типу вредности који желимо да декларишемо као реф претходи кључна реч "реф" током декларације метода, и метода позива. Више од једног параметра може бити декларисано као “реф” приликом позивања и декларисања методе.
усинг Систем; цласс ДемоРеф {публиц воид Скуаре (реф инт с) {с = с * с; }} цласс Реф_маин {статиц воид Маин () {ДемоРеф об = нев ДемоРеф (); инт а = 10; Цонсоле.ВритеЛине ("а пре позива метода:" + а); об.Скуаре (реф а); // Користи се кључна реч Цонсоле.ВритеЛине ("а афтер цалл:" + а); }} // излаз а пре позива методу: 10 а после позива метода: 100
У горе наведеном коду, варијабла 'а' се прослеђује као аргумент методу Скуаре (реф а) заједно са модификатором параметра реф приложеним на њега. То значи да ће се променити метод Скуаре (реф а) који ће се извршити на варијабли 'а' унутар њега ће се одразити у оригиналној вредности 'а', такође изван методе.
Постоје неке важне тачке које се морају запамтити када се ради о модификатору параметра “реф”.
- Аргумент који проследите реф на метод мора бити иницијализован пре позивања методе.
- Метод не сме да додели почетну вредност аргументу реф.
- Такође можете користити реф заједно са референтном варијаблом.
Дефиниција кључне речи Оут
Сваки пут када позовете метод, враћа се само једна вриједност. Ако желите да се методом на позив врати више од једне вредности, мора се користити „оут“ кључна реч заједно са параметрима које желите да вратите када се метода заврши. Понекад је случај да када не желимо да проследимо нешто методи, али желимо да метода врати нешто, ми користимо параметре са кључном речју. Хајде да то схватимо са примером.
усинг Систем; цласс ДемоОут {публиц инт Децомпосе (двоструки к, двострука фракција) {инт вхоле_нум; вхоле_нум = (инт) к; фракција = к - цијела_нум; ретурн вхоле_нум; }} класа Оут_маинт {статиц воид Маин () {ДемоОут об = нев ДемоОут (); инт и; доубле фрац; и = об.Децомпосе (100.125, оут фрац); // искоришћена кључна реч Цонсоле.ВритеЛине ("део целог броја је" + и); Цонсоле.ВритеЛине ("део фракције је" + фрац); }} // Излаз Интегер део је 100 Фракцијски део је 0.125
У горњем коду, две вредности се враћају методом Децомпосе (). Она се враћа кључном ријечју “ретурн”, тј. Вхоле_нум, а друга враћа параметар којем претходи оут кључна ријеч док метода зове “фрац”.
Важне напомене о кључној ријечи оут.
- За разлику од реф кључне речи, параметар који користи кључну реч оут не сме бити иницијализован пре позивања методе.
- Позвани метод ће сам додијелити вриједност параметру с кључном ријечи оут јер се сматра нераспоређеним унутар названог метода, тј. Претпоставља се да нема почетну вриједност.
- Позвани метод мора додијелити вриједност излазном параметру прије завршетка методе.
- Кључна реч оут је такође применљива на референтну варијаблу.
Кључне разлике између Реф и Оут у Ц #
- Када се варијабла којој претходи кључна реч реф прослеђује било ком методу, промене које су унете у њу одражавају се у његовој оригиналној вредности. Када варијабли која је прослеђена методи претходи кључна реч оут, метода је враћа без коришћења повратне кључне речи.
- Параметар реф треба да се иницијализује пре него што се проследи методи. С друге стране, оут параметар мора бити иницијализиран унутар методе којој је прослијеђен.
- Док зовете, декларишете или дефинишете метод, параметар реф је експлицитно декларисан као реф. С друге стране, док зовете, декларишете или дефинишете метод, параметар оут је експлицитно декларисан као оут.
Закључак:
Кад год се варијабла просљеђује референцом на методу, може се користити реф и оут кључна ријеч. Док, разлог коришћења обе кључне речи је различит где се кључна реч реф може користити да би се променила вредност аргумента који претходи кључној речи реф, прослеђен позваном методу, а кључна реч оут се користи да се врати вредност претходног аргумента по кључној речи оут.