Portál AbcLinuxu, 10. května 2025 05:29

Dotaz: C# přepsání zděděného operátoru

12.6.2012 22:30 pou | skóre: 18
C# přepsání zděděného operátoru
Přečteno: 245×
Odpovědět | Admin
Dobrý den,
potřeboval bych poradit s přetížením operátoru v C#. Konkrétně u DataGridView. Potřebuji definovat vlastní výběrový operátor [] u výběru buňky.
Např.
string alfa=datagridview.Rows[2].Cells["alfa"].value;

potřebuji definovat vlastní metodu "get" (popřípadě set) která bude podle různého nastavení modifikovat výsledek v alfa.
Zkoušel jsem to tímto způsobem:
public partial class DataGridViewCell
{
public DataGridViewCell this[string columnName]
{
get{;}
set { ;}
}
}
Ale bohuzel nefunguje...
Hledal jsem snad všude, můžete mi někdo prosím pomoci?
Za každou odpověď děkuji!

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

12.6.2012 23:29 Radek Miček | skóre: 23 | blog: radekm_blog
Rozbalit Rozbalit vše Re: C# přepsání zděděného operátoru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Parciální třídy neslouží k rozšiřování tříd z jiných assembly. Kde se berou nastavení pro modifikaci? Nestačilo by udělat rozšiřující metodu object GetCellValue(this DataGridView dgv, int row, string col)?
12.6.2012 23:40 pou | skóre: 18
Rozbalit Rozbalit vše Re: C# přepsání zděděného operátoru
Tak jak jsem se o to pokoušel to tedy nejde, škoda :-(
Jak navrhujete to jistě jde a problém by to vyřešilo, jenže se jedná již o rozpracovaný program, takže bych musel hledat veškeré použití a přepsat ho, ale jak se zdá, tak mi stejně nic jiného nezbyde...
Každopádně děkuji za Vaši odpověď
13.6.2012 00:23 Radek Miček | skóre: 23 | blog: radekm_blog
Rozbalit Rozbalit vše Re: C# přepsání zděděného operátoru
To přepsání bude asi nejčistší řešení (vzhledem k tomu, že vlastnost Rows třídy DataGridView není virtuální).

Existují frameworky jako Moles nebo nový Fakes, které umožňují zaměnit libovolnou metodu – používají k tomu API pro profilery, a tudíž potřebují příslušná oprávnění.
13.6.2012 08:34 pou | skóre: 18
Rozbalit Rozbalit vše Re: C# přepsání zděděného operátoru
Ok děkuji za informace. Jdu na přepis...
LangPa avatar 14.6.2012 10:42 LangPa | skóre: 12 | blog: LangPavel | Hradec Králové
Rozbalit Rozbalit vše Re: C# přepsání zděděného operátoru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Možná jsem jen nepochopil zadání, ale nemělo by se náhodou přepisovat na nějaké té collection? (Špatná třída)

takhle by to asi fungovalo jako string alfa=datagridview.Rows[2].Cells["cell typu DataGridViewCell"]["alfa"].value;

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.