Разлика између константног и само читања

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

Шта је Цонст?

Цонст се односи на константну променљиву и чија вредност треба да се додели само једном, током декларације. Када се кључна реч цонст користи током декларације, она постаје константно што вредност остаје константна и не може се мењати током програма. То је више резервисана реч која одређује да се вредност не сме мењати после компајлирања. Цонст је подразумевано статички статички, па се може позвати са именом класе користећи „Цласснаме.ВариаблеНаме“. Сталне вредности се такође називају и дословне. Може бити било који основни тип података, као што је цели број цонст, плутајући цонст или стринг литерал.

Шта је РеадОнли?

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

Разлика између Цонстант-а и РеадОнли-а

  1. Основни

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

  1. Иницијализација

Конст је подразумевано статички и вредности за које би требало да се додељују у време декларације променљиве што значи да су вредности додељене само у време компилације. Константа се декларише помоћу кључне речи „цонст“. Иницијализација константног поља мора бити константан израз и не може се мењати. Једноставно речено, цонст је константа времена компилације. С друге стране, поље за читање се може иницијализирати само на нивоу класе, а не унутар методе, а поље се не може мењати након иницијализације. Другим речима, само променљиве се могу иницијализовати у тренутку декларације или унутар конструктора.

  1. Додјела меморије

Вриједност цонст ставља се директно у код јер дјелује као замјена времена компилације. Компајлер поставља константну вредност у скупне метаподате који дефинише константу и уграђује вредност у сам ИЛ код након иницијализације, тако да није потребна меморија константима током извођења за додјелу. Вредност која је само за читање није константна и она се чува у хрпи утоваривача која меморији не може доделити док се не учита њен тип. Поља за читање само се чувају у динамичкој меморији тако да се вредности могу добити само током извођења.

  1. Бинарна верзија

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

Цонст вс. Реадонли: упоредни графикон

Резиме Цонст вс. Реадонли

Обје кључне ријечи се користе за исту ствар која је декларирање члана тако да се вриједности не могу мијењати у цијелом програму. Међутим, цонст кључна реч се веома разликује од кључне речи реадонли. Цонст је константна променљива чија вредност треба да се иницијализује у време компилације, док се поље за читање може иницијализовати само на нивоу класе, било у тренутку декларације или унутар конструктора. Цонст је константа времена компилације док су поља за читање само за читање. Променљивим Констанцама може се приступити коришћењем „Цласснаме.ВариаблеНаме“, док се варијаблама за читање могу приступити помоћу „ИнстанцеНаме.ВариаблеНаме“. Штавише, варијабле цонст могу се декларисати у методама, док се поља која се читају не могу декларисати у методама.