Forum » Programiranje » [C#] toString ne dela
[C#] toString ne dela
teac ::
Imam en class, ki je podedovan od ComboBox
class MyFeedComboBox : System.Windows.Forms.ComboBox { string _ime; public override string ToString() { return _ime; } }Potem nekje v kodi ustvarim nov objekt:
MyFeedComboBox myCombo = new MyFeedComboBox(); comboBox.Items.Add(myCombo);Ko hočem dodat to v comboBox, naj bi objekt, ki ga dodajam poklical svojo ToString() metodo. Tu pa se pojavi moj problem. Tega mi ne naredi. Zadnji stavek dela v redu, če napišem tako:
comboBox.Items.Add(myCombo.ToString());Zakaj mi ne pokliče svoje ToString metode?
- spremenilo: teac ()
darkolord ::
Funkcija Add() kot parameter sprejme objekt in ne direkt stringa, tako da ne pokliče toString()... Vsaj tako je v 2005
Zgodovina sprememb…
- spremenilo: darkolord ()
rokpok ::
Funkcija add sprejme objekt (kot je že darkolord rekel) in kasneje nad tistim objektom pokliče funkcijo ToString () katere vrnjena vrednost je potem prikazana na seznamu.
A ti tvoj objekt samo ne pokaže v comboBox-u ali ti ga sploh ne doda? Nevem, malo čudno mi zgleda vse to. Kaj pa je naloga tega MyFeedComboBox-a oziroma zakaj deduje od System.Windows.Forms.ComboBox? Če jaz zdaj to prav razumem ti v comboBox dodajaš še en comboBox...
A ti tvoj objekt samo ne pokaže v comboBox-u ali ti ga sploh ne doda? Nevem, malo čudno mi zgleda vse to. Kaj pa je naloga tega MyFeedComboBox-a oziroma zakaj deduje od System.Windows.Forms.ComboBox? Če jaz zdaj to prav razumem ti v comboBox dodajaš še en comboBox...
Rad bi bil pingvin.
Zgodovina sprememb…
- spremenil: rokpok ()
MaCoFaCo ::
Če sem te prav zastopil... Jaz sem naredil spodnjo kodo in dela kot je treba (Visual Studio 2005).
class MyItem { public MyItem(string text, object value) { this.text = text; this.value = value; } private string text; private object value; public override string ToString() { return text; } } private void Form1_Load(object sender, EventArgs e) { comboBox1.Items.Add(new MyItem("item1", "value1")); //v combotu prikazan "item1" comboBox1.Items.Add(new MyItem("item2", "value2")); //v combotu prikazan "item2" MyItem item1 = comboBox1.Items[0] as MyItem; MyItem item2 = comboBox1.Items[1] as MyItem; }
teac ::
Ta objekt mi doda v combobox, ampak brez teksta, ker ne kliče toString. Če pa sam dodam toString (torej Add(myObject.toString()), ko dodajam objekt v comboBox, pa se tekst izpiše.
Naloga tega mojega comboBoxa? Nič, pač sem si naredil svoj class, ker rabim še nekaj drugih informacij, ki jih pri comboBox-u nimam kam vpisat.
Naloga tega mojega comboBoxa? Nič, pač sem si naredil svoj class, ker rabim še nekaj drugih informacij, ki jih pri comboBox-u nimam kam vpisat.
rokpok ::
Zakaj pa mora ta tvoj objekt (MyFeedComboBox) dedovati od System.Windows.Forms.ComboBox?
Rad bi bil pingvin.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | C# težavaOddelek: Programiranje | 3754 (2600) | mladec |
» | [Java] Urejanje baze z JTableOddelek: Programiranje | 1020 (804) | vonNeumann |
» | c# datagridview in comboxOddelek: Programiranje | 1216 (1104) | OmegaM |
» | [Visual C#] TableAdapterOddelek: Programiranje | 1148 (1024) | detroit |
» | c# - problemOddelek: Programiranje | 1422 (1141) | GeeDee |