BG Development


Страници: (8) [1] 2 3 ... последна »  ( Първото ново мнение ) Reply to this topicStart new topicStart Poll

> Reference a property?
CPPlus
Публикувано на: 08-01-2017, 19:22
Quote Post



Име: Людмил Григоров
Група: Потребител
Ранг: Почетен член

Мнения: 1075
Регистриран на: 22.06.11



Нещо май ми липсват знания как работят C# properties (или & оператора..).

CustomType type = new CustomType();
CODE
Console.WriteLine(&type); // OK


Сега ако CustomType има property, което сочи към друга инстанция на CustomType...
CODE
Console.WriteLine(&type.AnotherReference); // Fireworks and explosions.


Защо не мога да взема адреса на property-то? Грешен синтаксис? Вярно, че property-тата са syntax sugar за accessors, ама аз така съм го създал:
CODE
public CustomType AnotherReference{ get; private set; }


В случая няма ли някаква променлива, която да стои зад тоя get (и да има адрес съответно)?

Edit: Пък и да съм посочил custom get, то не може ли пак да ми връща адреса на върнатото...

Това мнение е било редактирано от CPPlus на 08-01-2017, 19:24


--------------------
Нищо не е свършило, докато не е свършило! Не се предавай и ще постигнеш целта си!
PMEmail Poster
Top
JanBirdX
Публикувано на: 08-01-2017, 20:05
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1402
Регистриран на: 21.02.05



Забравя се че пропъртитата са двойка методи в общия случай.
PMEmail Poster
Top
CPPlus
Публикувано на: 08-01-2017, 20:09
Quote Post



Име: Людмил Григоров
Група: Потребител
Ранг: Почетен член

Мнения: 1075
Регистриран на: 22.06.11



То хубаво, ама ако не си дефинираш get и set те пак си работят, a.k.a. има underlying variable някъде там..


--------------------
Нищо не е свършило, докато не е свършило! Не се предавай и ще постигнеш целта си!
PMEmail Poster
Top
CPPlus
Публикувано на: 08-01-2017, 20:14
Quote Post



Име: Людмил Григоров
Група: Потребител
Ранг: Почетен член

Мнения: 1075
Регистриран на: 22.06.11



Ще се връщам в първи клас май май. user posted image
Тука matchOne и matchTwo са променливи от foreach. Защо не може да му вземе адреса? foreach нали уж работи с reference-и? И как тогава работи ReferenceEquals? В дебъгера изкарвам различни адреси за matchOne и matchTwo, но тоя метод не спира да връща true..

Edit: Май май matchOne ми връща адреса на променливата matchOne, а не адреса на това в нея... то въобще към какво сочи един указател? Към първия memory address на обект?

Това мнение е било редактирано от CPPlus на 08-01-2017, 20:16


--------------------
Нищо не е свършило, докато не е свършило! Не се предавай и ще постигнеш целта си!
PMEmail Poster
Top
Bender
Публикувано на: 08-01-2017, 20:17
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 4814
Регистриран на: 19.06.14



добре че в жава няма такива извращения


--------------------
Живота е спагети, кода за да работи добре трябва да го наподобява - Дон Реба
...
Живеем в греховни времена, какво очакваш богоугоден и благочестив код ли? - Дон Реба
...
много положителна енергия черпя от вас двамата,единият комунистически девствен,другият яко яхнал асемблерните розови понита - saruman
...
Рано или късно усерите на Виндофс разбират че стоят от неправилната страна на хуя. - ici
PM
Top
CPPlus
Публикувано на: 08-01-2017, 20:23
Quote Post



Име: Людмил Григоров
Група: Потребител
Ранг: Почетен член

Мнения: 1075
Регистриран на: 22.06.11



QUOTE (Bender @ 08-01-2017, 20:17)
добре че в жава няма такива извращения

Aз точно от java се бъркам... или там е работело по същата логика по случайност и аз не знам нищо, или C#-а не е java++. И в двата случая ще се радвам на просветление icon_lol.gif .


--------------------
Нищо не е свършило, докато не е свършило! Не се предавай и ще постигнеш целта си!
PMEmail Poster
Top
Bender
Публикувано на: 08-01-2017, 20:24
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 4814
Регистриран на: 19.06.14



QUOTE (CPPlus @ 08-01-2017, 21:23)
QUOTE (Bender @ 08-01-2017, 20:17)
добре че в жава няма такива извращения

Aз точно от java се бъркам... или там е работело по същата логика по случайност и аз не знам нищо, или C#-а не е java++. И в двата случая ще се радвам на просветление icon_lol.gif .

C# = --Java


--------------------
Живота е спагети, кода за да работи добре трябва да го наподобява - Дон Реба
...
Живеем в греховни времена, какво очакваш богоугоден и благочестив код ли? - Дон Реба
...
много положителна енергия черпя от вас двамата,единият комунистически девствен,другият яко яхнал асемблерните розови понита - saruman
...
Рано или късно усерите на Виндофс разбират че стоят от неправилната страна на хуя. - ici
PM
Top
CPPlus
Публикувано на: 08-01-2017, 21:29
Quote Post



Име: Людмил Григоров
Група: Потребител
Ранг: Почетен член

Мнения: 1075
Регистриран на: 22.06.11



Bender, поправи ме ако греша, но като инстанцираш обект в java и можеш да му вземеш адреса с &.

В C# явно обектите нямат константен адрес. Ако искаш да вземеш адреса на обект трябва да кажеш на garbage collector-a да не го мести и тогава. Сега предполагам & наистина взима адреса на локалната променлива тогава...

Това мнение е било редактирано от CPPlus на 08-01-2017, 21:30


--------------------
Нищо не е свършило, докато не е свършило! Не се предавай и ще постигнеш целта си!
PMEmail Poster
Top
ivan84
Публикувано на: 08-01-2017, 21:33
Quote Post



Име:
Група: Форумен член
Ранг: Почетен член

Мнения: 8170
Регистриран на: 01.04.11



Не можеш да му вземеш адреса. А и не е необходимо, тъй като всичко е указател.
PMEmail Poster
Top
JanBirdX
Публикувано на: 08-01-2017, 21:35
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1402
Регистриран на: 21.02.05



QUOTE (Bender @ 08-01-2017, 20:24)
C# = --Java

По скоро е обратното, но какво значение има. На крива ракета, космоса и пречи.
PMEmail Poster
Top
0 потребители преглеждат тази тема в момента (0 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Страници: (8) [1] 2 3 ... последна » Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2015 | BG Development | All Rights Reserved
RSS 2.0