Diskuze: (O)objecty
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 8 zpráv z 8.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Ani jeden z nich většinou potřebovat nebudeš. object neznám, Object je předek všech objektů.
dost často object vídám při eventu stisku něčeho( button, pictBox,...) ve formech, tak jsem chtěl jen vědět jestli to má nějáký konkrétnější význam.
No to je ale jméno proměnné, ta se může jmenovat třeba bagr.
To je stejné jako string a String. string tedy s malým s je datový typ pro řetězec a alias pro System.String. System.String je vlastně třída implementující String (nevím jak to lépe popsat).
Můžeš zkusit napsat String
když nebudeš mít using System;
uvidíš, že to nepůjde. Ale string
ti půjde, protože je to
jeho alias. Tedy je to to samé. Ovšem například v Javě tohle třeba tak
úplně neplatí.
Object reprezentuje obecný dat. typ. Můžeš si tam dát cokoliv.
object a = 1;
A pak si zjistit typ a.GetType()
, porovnávat přetypovávat aj.
Hodí si například, když máš objekt, který reprezentuje například
kontakt, ale nahráváš tam kontakty všeho možného druhu. Pak, když s nimi
pracuješ tak se ptáš, co jsou zač, přetypuješ si na správný dat typ a
pracuješ s tím.
public string getContactId(object a)
{
if (a is FbContact)
return (a as FbContact).Jid;
else if (a is SkypeContact)
return (a as SkypeContact).SkypeName;
return "Undefined";
}
Nevím jak lépe to popsat. Na to přijdeš v praxi hlavně.
Co se týče toho objektu v událostech. Třeba object sender
tak v tom je instance objektu, který tu událost vyvolal. Například pokud
máš event na textbox tak si můžeš přetypovat ten objekt na TextBox a
pracovat s ním.
private void textBox1_TextChanged(object sender, EventArgs e)
{
TextBox tb = sender as TextBox;
tb....
}
Můžeš tak také poznat, zda byl event vyvolán změnou textu nebo
manuálně. Například dáš textBox1_TextChanged(null, null); a můžeš si
dát podmínku if (sender == null)
Část z toho jsem pochopil už z toho když jsem se teprve učil co je to to přetypování. Ale opravdu celý to pochopim až po tom co si to vyskoušim.
Nojo, máš pravdu, je to fakt alias, jsem nevěděl
Zobrazeno 8 zpráv z 8.