Jump to content

Програмирање - Value and Reference Types in C#

Оцени ову тему


Препоручена порука

пре 21 минута, Grizzly Adams рече

"Структуре" се од класа разликују пре свега како су интерно имплементиране (мало компликовано за објашњење), иначе су функционално скоро исте као класе.

Уз једну важну разлику...

16lelj8.jpg

Link to comment
Подели на овим сајтовима

Да, покушавам да не залазимо сад у све детаље јер би успорили пуно... А све те ствари могу да се разјасне и касније. Биће и лакше да се разуме.

За сада можемо да кажемо да су све то неке врсте "класа".

ΜΟΛΩΝ ΛΑΒΕ

Link to comment
Подели на овим сајтовима

пре 1 минут, Grizzly Adams рече

Да, покушавам да не залазимо сад у све детаље јер би успорили пуно... А све те ствари могу да се разјасне и касније. Биће и лакше да се разуме.

За сада можемо да кажемо да су све то неке врсте "класа".

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

Link to comment
Подели на овим сајтовима

Управо сада, Juanito рече

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

Па они их слично томе и зову - "value types" and "reference types".

  • Волим 1

ΜΟΛΩΝ ΛΑΒΕ

Link to comment
Подели на овим сајтовима

пре 6 минута, Grizzly Adams рече

@Juanito

А за тебе питање - зашто онда string који је класа се понаша као структура при додели и поређењу? :)

Зар није string immutable? А кад је нешто immutable, онда је небитно да ли је имплментирано као референца. Разликовање референци и вредности има смисла само при мутацији. 

Link to comment
Подели на овим сајтовима

пре 1 минут, Grizzly Adams рече

Па они их слично томе и зову - "value types" and "reference types".

Да, само бих ја то ”озваничио” синтактички, нпр. valuetype Int {}, referencetype Window {}. :)

Link to comment
Подели на овим сајтовима

пре 3 минута, Juanito рече

Да, само бих ја то ”озваничио” синтактички, нпр. valuetype Int {}, referencetype Window {}. :)

Јер заиста, Урош је с правом питао зар нису и бројеви класе. Па јесу, брате. У ствари, у првобитним ОО језицима су постојале само класе и евентуално примитвни типови попут бројева и стрингова. Збрку је направио C++ који је по дефиницији морао да наследи све из C-a. И даље разбијам главу зашто су ту збрку морали да задрже у C#-у који је прављен од нуле. 

Link to comment
Подели на овим сајтовима

@Grizzly Adams

Кад будеш заиста докон, попиј једно три пива и погледај још једно излагање овог краља.

Ово је баш heavy, и то не само за почетнике. Ако неко случајно баци поглед, ово вам не треба да бисте програмирали, па чак ни да бисте радили у неком гуглету или мајкросфту. У питању су математичке теоријске основе програмских језика, јер, веровали или не, програмски језици имају смисла. :D 

Link to comment
Подели на овим сајтовима

1 hour ago, Juanito рече

Кад будеш заиста докон, попиј једно три пива и погледај још једно излагање овог краља.

Стиго сам до пола... Како је луд хбт... :)

  • Волим 1

ΜΟΛΩΝ ΛΑΒΕ

Link to comment
Подели на овим сајтовима

Davno beše kad sam čitao o klasama i strukturama.

Koliko se sećam strukture su starije i uvedene su pre klasa i čini njihovu preteču.

Zar nije osnovna razlika između klasa i struktura u tome što klase sadrže i metode dok ih strukture nemaju?

пре 31 минута, HOA+ рече

(dodeljivanje ordenja): Тиме свака Црква сваком верном народу указује на систем хришћанских вредности и врлина које хришћанин треба да има.

 

 

Link to comment
Подели на овим сајтовима

пре 7 часа, VaSa110 рече

Zar nije osnovna razlika između klasa i struktura u tome što klase sadrže i metode dok ih strukture nemaju?

Да, добро се сећаш. Тако је било у C++,  али C# има другачији приступ.

ΜΟΛΩΝ ΛΑΒΕ

Link to comment
Подели на овим сајтовима

×
×
  • Креирај ново...