C# pomocník pro pochopení kódu

Active

C# pomocník pro pochopení kódu
« kdy: 09. 02. 2014, 14:09:51 »
Dobry den,

ani nevim, jak nazvat toto tema, jedna se pouze a obycejny dotaz. Nevite, zda existuje pro C# neco podobneho, jako mam tady pro python? http://pythontutor.com/visualize.html. Moc diky :)
« Poslední změna: 10. 02. 2014, 13:47:15 od Petr Krčmář »


DK

Re:C# pomocnik pro pochopeni kodu - dotaz
« Odpověď #1 kdy: 09. 02. 2014, 14:23:05 »
mas na mysli kolekce? jinak samozrejme v typovem jazyku nedas do stejne kolekce dve ruzne tridy (pretypovani neresim)

RAII

Re:C# pomocnik pro pochopeni kodu - dotaz
« Odpověď #2 kdy: 09. 02. 2014, 15:11:29 »
Keci, dáš, ale oba objekty musí mít stejného předka, přičemž kontejner musí obsahovat pointery na předka. V C# se pointery standardně nepoužívají, takže asi reference.

RAII

Re:C# pomocnik pro pochopeni kodu - dotaz
« Odpověď #3 kdy: 09. 02. 2014, 15:17:45 »
Hej, ty python programátoři musej bejt ale lamy když potřebujou pro výuku takovou vizualizační sračku. Úžasný jak padá úroveň programátorů (vo těch tragédech který to učej na školách ani nemluvím, to nejsou programátoři, to sou cvičený opice a lepiči). Jinak, stejnou kravinu fakt pro C# nenajdeš. BUde ti muset stačit debugování. Pokud ses urazil, máš to blbý. Sem dneska nasranej.

DK

Re:C# pomocnik pro pochopeni kodu - dotaz
« Odpověď #4 kdy: 09. 02. 2014, 16:27:48 »
RAII: takze kdyz pak ten objekt z kolekce vytahnes, bude puvodniho typu? nebude... proto pisu, ze neresim pretypovani


OMG

Re:C# pomocnik pro pochopeni kodu - dotaz
« Odpověď #5 kdy: 09. 02. 2014, 18:13:38 »
Hej, ty python programátoři musej bejt ale lamy když potřebujou pro výuku takovou vizualizační sračku. Úžasný jak padá úroveň programátorů (vo těch tragédech který to učej na školách ani nemluvím, to nejsou programátoři, to sou cvičený opice a lepiči). Jinak, stejnou kravinu fakt pro C# nenajdeš. BUde ti muset stačit debugování. Pokud ses urazil, máš to blbý. Sem dneska nasranej.

Co to sem píše za slečinku, co se naučila programovat s debuggerem? :-D To my praví programátoři jsme dříve maximálně sem tam použili něco jako dnešní trace. Ale debugger (tak jak to známe dnes) nebyl. A pak úroveň programátorů spadla, když přišly symbolické debuggery.
No ale připouštím, že u analogových počítačů jsme občas použili osciloskop.

Re:C# pomocnik pro pochopeni kodu - dotaz
« Odpověď #6 kdy: 09. 02. 2014, 18:40:54 »
RAII: takze kdyz pak ten objekt z kolekce vytahnes, bude puvodniho typu? nebude... proto pisu, ze neresim pretypovani

Staticky/compiletime to vypada, ze vytahnes to, na co je kolekce typovana. Dynamicky/v runtime se ti vrati to, co jsi do ni dal.

JSH

Re:C# pomocnik pro pochopeni kodu - dotaz
« Odpověď #7 kdy: 09. 02. 2014, 18:46:40 »
Kdo nedebugoval numerické výpočty v shaderech podle barvy pixelů je houby drsňák. 8)

DK

Re:C# pomocnik pro pochopeni kodu - dotaz
« Odpověď #8 kdy: 09. 02. 2014, 18:58:53 »
RAII: takze kdyz pak ten objekt z kolekce vytahnes, bude puvodniho typu? nebude... proto pisu, ze neresim pretypovani

Staticky/compiletime to vypada, ze vytahnes to, na co je kolekce typovana. Dynamicky/v runtime se ti vrati to, co jsi do ni dal.

ano, vrati to, co jsem do ni dal, jenze jelikoz do ni muzu dat pouze objekt typu te kolekce, tak se musi potomci pretypovat, tudiz nasledujici kod bude delat to, co je napsane v komentarich

Kód: [Vybrat]
List<Rodic> kolekce = new List<Rodic>();
kolekce.add(new Potomek()); // objekt se pretypuje na Rodic, do kolekce se ulozi typ Rodic, ne Potomek
kolekce[0]; // vrati typ Rodic

Ttxman

Re:C# pomocnik pro pochopeni kodu - dotaz
« Odpověď #9 kdy: 09. 02. 2014, 20:05:56 »
No s obrazkama a sipeckama o nicem nevim.

Ale stacit by melo pustit program na debuggeru, krokovat a koukat do okna "Locals" tam by meli byt videt vsechny lokalni promenny a jejich hodnoty. Pripadne si jeste muzes rucne zadat co sledujes (okno "watch"). Nebo klasika v podobne najeti mysi nad promenou a prohlizeni jeji hodnoty (ve visual studiu si je jde i pripnout, takze ty nahledy na hodnotu zustavaji otevreny)

Radovan.

Re:C# pomocnik pro pochopeni kodu - dotaz
« Odpověď #10 kdy: 09. 02. 2014, 20:19:00 »
Hej, ty python programátoři musej bejt ale lamy když potřebujou pro výuku takovou vizualizační sračku. Úžasný jak padá úroveň programátorů (vo těch tragédech který to učej na školách ani nemluvím, to nejsou programátoři, to sou cvičený opice a lepiči). Jinak, stejnou kravinu fakt pro C# nenajdeš. BUde ti muset stačit debugování. Pokud ses urazil, máš to blbý. Sem dneska nasranej.

Co to sem píše za slečinku, co se naučila programovat s debuggerem? :-D To my praví programátoři jsme dříve maximálně sem tam použili něco jako dnešní trace. Ale debugger (tak jak to známe dnes) nebyl. A pak úroveň programátorů spadla, když přišly symbolické debuggery.
No ale připouštím, že u analogových počítačů jsme občas použili osciloskop.

Pche, LGP-30 měl osciloskop zabudovaný přímo v čelním panelu, Mel Kaye by mohl vyprávět... :-D
Jinak pro C# by se měl nechat použít Baltík, ne?

Makovec

Re:C# pomocnik pro pochopeni kodu - dotaz
« Odpověď #11 kdy: 09. 02. 2014, 20:21:37 »
RAII: takze kdyz pak ten objekt z kolekce vytahnes, bude puvodniho typu? nebude... proto pisu, ze neresim pretypovani

Staticky/compiletime to vypada, ze vytahnes to, na co je kolekce typovana. Dynamicky/v runtime se ti vrati to, co jsi do ni dal.

ano, vrati to, co jsem do ni dal, jenze jelikoz do ni muzu dat pouze objekt typu te kolekce, tak se musi potomci pretypovat, tudiz nasledujici kod bude delat to, co je napsane v komentarich

Kód: [Vybrat]
List<Rodic> kolekce = new List<Rodic>();
kolekce.add(new Potomek()); // objekt se pretypuje na Rodic, do kolekce se ulozi typ Rodic, ne Potomek
kolekce[0]; // vrati typ Rodic

No objekt je furt stejnýho typu, přece "přetypováním" - tj. tím že něj dokazuje proměnná nějakýho typu, neztratí část svých vlastností, akorát nejsou "vidět". Co může být různé je jenom typ té proměnné která na ten objekt (správně instanci třídy - to čeho je ten objekt instance se tím jakého typu je proměnná která na něj ukazuje nezmění). A kompilátor může požadovat abys občas explicitně napsal že víš že ta instance je ve skutečnosti třídy typu potomka typu proměnné která na ni v deném místě kódu odkazuje.

eswrgewrtewrtw

Re:C# pomocnik pro pochopeni kodu - dotaz
« Odpověď #12 kdy: 09. 02. 2014, 20:47:09 »
kdo neprogramoval analogovy pocitac pomoci kabliku je prd drsnak :-)

RAII

Re:C# pomocnik pro pochopeni kodu - dotaz
« Odpověď #13 kdy: 09. 02. 2014, 23:59:45 »
Heh, u analogového počítače se ani nedalo mluvit o programování ... jinak... já se s debugerem neučil programovat (no, nevím ani k čemu by mi byl). Ten používám až v praxi na zjišťování zdroje nestandardního chování programu.

Novy

Re:C# pomocnik pro pochopeni kodu - dotaz
« Odpověď #14 kdy: 10. 02. 2014, 10:52:53 »

ano, vrati to, co jsem do ni dal, jenze jelikoz do ni muzu dat pouze objekt typu te kolekce, tak se musi potomci pretypovat, tudiz nasledujici kod bude delat to, co je napsane v komentarich

Kód: [Vybrat]
List<Rodic> kolekce = new List<Rodic>();
kolekce.add(new Potomek()); // objekt se pretypuje na Rodic, do kolekce se ulozi typ Rodic, ne Potomek
kolekce[0]; // vrati typ Rodic

Bude to pořád potomek, bude dělat věci jako potomek, i když se v kolekci tváří jako rodič. Když v potomkovi přepíšeš metodu a pak ji po vytažení z kolekce zavoláš, bude volat metodu potomka, ne rodiče.