Разлика између реф и ван у Ц #

Аутор: Laura McKinney
Датум Стварања: 2 Април 2021
Ажурирати Датум: 5 Може 2024
Anonim
Сетевой концентратор, коммутатор и маршрутизатор - в чем разница?
Видео: Сетевой концентратор, коммутатор и маршрутизатор - в чем разница?

Садржај


"Реф" и "Оут" су модификатори параметара који се користе у Ц #. Користећи реф и оут, можете проследити било коју врсту вредности референцијом на било коју методу. Разлог преноса било које врсте вриједности референцом уводи главну разлику између реф и оут кључне ријечи. Тхе реф кључна реч омогућава позваној методи да измени садржај аргумента који јој је пренесен помоћу кључне речи реф. Тхе напоље кључна реч омогућава позиван начин да врати више вредности у једном позиву. Проучимо разлику између реф и ван заједно са упоредним табелом.

  1. Упоредни графикон
  2. Дефиниција
  3. Кључне разлике
  4. Закључак

Упоредни графикон

Основе за упоређивањеРефНапоље
ОсновниОмогућава промену вредности аргумента који се наставља кључном речју реф.Омогућава методу да врати те вредности које су претходиле кључној речи.
ИницијализацијаПараметар реф мора бити иницијализиран прије позива методе.Параметар оут мора се иницијализирати унутар позване методе прије него што се укине.
ИзјаваПараметар који треба измијенити методом декларира се као реф, док се декларација методе и позива метода.Параметар који се враћа мора бити декларисан као реф док се декларација метода и позива метода.


Дефиниција кључне речи

„Реф“ је модификатор параметара који се користи када постоји потреба за позивањем методе са позивом по референци. Кад желимо да се промене аргумената унутар позване методе морају одражавати у изворној вредности те променљиве, тада се користи модификатор реф реф. Вриједности типа коју желимо навести као реф, претходи кључној ријечи "реф" током декларације метода и позивања метода. Више од једног параметра може се декларирати као „реф“ док позивате и декларирате методу.

коришћење система; класа ДемоРеф {публиц воид Скуаре (реф инт с) {с = с * с; }} класа Реф_маин {статиц воид Маин () {ДемоРеф об = нови ДемоРеф (); инт а = 10; Цонсоле.ВритеЛине ("а метода пре позива:" + а); об.Скуаре (реф а); // Користи реф Кључна реч Цонсоле.ВритеЛине ("а након позива:" + а); }} // излаз а прије позива: 10 а након позива методе: 100

У горњем коду, променљива 'а' се прослеђује као аргумент методу Скуаре (реф а) заједно са реферираним модификатором параметра. То значи да ће се било које промене методе Скуаре (реф а) извршити на променљивој 'а' унутар ње одражавати у оригиналној вредности 'а', такође изван методе.


Неке су важне тачке којих се морате запамтити када се бавите модификатором „реф“.

  • Аргумент који просљеђујете реф-у мора бити иницијализиран прије позива методе.
  • Метода не сме доделити почетну вредност аргументу реф.
  • Такође можете користити реф заједно са референтном променљивом.

Дефиниција ван кључне речи

Сваки пут када назовете методу, враћа вам се само једна вредност. Ако желите да метода узврати више од једне вредности при позиву, кључна реч "ван" мора се користити заједно са параметрима које желите да вратите назад када се метода укине. Понекад је случај да када не желимо ништа пренијети на методу, али желимо да метода врати нешто што користимо параметре са кључном речју ван.Да разумемо са примером.

коришћење система; класа ДемоОут {публиц инт Децомпосе (дупли к, двоструки уломак) {инт цели_нум; вхоле_нум = (инт) к; фракција = к - цели_број; ретурн вхоле_нум; }} класа Оут_маинт {статиц воид Маин () {ДемоОут об = нови ДемоОут (); инт и; двоструки фрак; и = об.Састави (100.125, ван фракције); // употребљена кључна реч Цонсоле.ВритеЛине („Део целог броја је“ + и); Цонсоле.ВритеЛине ("део фракције је" + фрак); }} // излаз целог броја је 100 Фракцијски део је 0,125

У горњем коду две вредности се враћају методом Децомпосе (). Једна враћа кључну реч „ретурн“, тј., Цело_нум, а друга враћа параметар којем претходи кључна реч оут, док метода позива, тј. „Фрац“.

Важне тачке које морате имати на уму о кључној речи.

  • За разлику од реф кључне ријечи, параметар који користи кључну ријеч не смије се иницијализирати прије позива методе.
  • Позвана метода ће сама додијелити вриједност параметру с кључном ријечи ван јер се сматра непризначеном унутар позваног метода, тј. Претпоставља се да нема почетну вриједност.
  • Позвана метода мора додијелити вриједност излазном параметру прије него што се метода укине.
  • Вањска кључна реч је такође применљива на референтну променљиву.
  1. Када се варијабла којој претходи кључна реч реф пренесе на било који метод, тада се промене извршене унутар методе одражавају у њеној оригиналној вредности. Када варијабли просљеђеној методи претходи кључна ријеч, метода је враћа без употребе кључне ријечи ретурн.
  2. Параметар реф треба бити иницијализиран прије него што се прослиједи методи. С друге стране, излазни параметар мора се иницијализирати унутар методе којој се преноси.
  3. Док позива, изјављује или дефинира метод, параметар реф изричито је декларисан као реф. С друге стране, док позивате, изјављујете или дефинирате методу, параметар се експлицитно декларише као искључен.

Закључак:

Кад год се променљива треба пренети референцом на методу, може се користити кључна реч реф и оут. Док су разлози употребе обе кључне речи различити где се кључна реч реф може користити за промену вредности аргумента који претходи реф кључној речи, прелази се на позвани метод, а кључна реч оут користи се за враћање вредности претходног аргумента по кључној речи.