Začátečník – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Začátečník – .NET – Fórum – Programujte.comZačátečník – .NET – Fórum – Programujte.com

 

Martin
~ Anonymní uživatel
1600 příspěvků
9. 1. 2013   #1
-
0
-

Ahoj, teprve se učím c# a mám na vás dotaz ohledně struktury.

Co přesně ve struktuře znamená slovo this? Vím, že ve třídě je to odkaz na aktuální instanci, ale co je to ve struktuře?

Někde jsem četl, že se to chová někdy jako ref a někdy jako out a v tom mám zmatek. Kdy se to tedy jak chová? :)

Jak je možné, že this můžu přiřadit jinou strukturu a udělat tak kopii? Já myslel, že this je vždy pouze reference(ukazatel), ale u struktur to asi vždy nebude, nebo se pletu? Děkuji 

Nahlásit jako SPAM
IP: 88.83.169.–
ingiraxo+15
Grafoman
9. 1. 2013   #2
-
0
-

ve struktůře se  "this" chová úplně stejně jako ve třídě, nemá zádný speciální využití pro struktůru

je jen důležitý vědět, že struktůra se alokuje na stack a třída na heap, to je hlavní rozdíl mezi třídou s struktůrou

"this" ukazuje na aktuální objekt (sebe sama), ale stylem reference resp. jde stím vytvořit taková  "light-copy" objektu

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
Martin
~ Anonymní uživatel
1600 příspěvků
9. 1. 2013   #3
-
0
-

Super díky.

Mám ještě jeden trochu odlišný dotaz. Když provedu boxing struktury a rozhodnu se zavolat metodu rozhraní, kterou struktura implementuje....kdy přesně tam dochází k unboxingu? K unboxingu dojde jen pokud metoda používá this? Jak to vlastně funguje? Má dojít k unboxingu za účelem získání správného ukazatele na zabalenou strukturu, ale nějak si nedokáži představit jak se to v paměti provádí. Velmi děkuji

PS: Zajímá mě pouze případ volání metod zabalené struktury. Obecně vím jak zabalení a roznalení struktur funguje. 

Nahlásit jako SPAM
IP: 88.83.169.–
ingiraxo+15
Grafoman
9. 1. 2013   #4
-
0
-

já ted nějak nechápu co presne chces.. jak to funguje v paměti? s tim si sice nejsem ted jistej, ale mělo by to bejt stejne jako u tridy, proste jen (4byte) ptr na tu funkci, jde hlavně o instanční proměnný, ty lezou na stack misto na heap

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 7 hostů

Podobná vlákna

Začátečník — založil Otis

Zacatecnik — založil sa54d

Začátečník — založil Empty

Zacatecnik — založil Tase

C++ - začátečník — založil Diccon

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý