Toon posts:

[c#] Casting probleempje...

Pagina: 1
Acties:

Verwijderd

Topicstarter
Stel ik heb een collection van het type object. Als ik daarvan een item wil aanpassen moet ik deze eerst casten om alle properties en methods aan te roepen. Alleen wanneer ik dat doe dan maakt c# een nieuw object voor je aan, maar dat wil ik helemaal niet. Dit is het voorbeeldje:
C#:
1
2
3
4
5
// myCollection[0] wordt niet gewijzigd...
(myCollection[0] as MyClass).MyProperty = ":(";

// idem
((MyClass)myCollection[0]).MyProperty = ":(";


Hoe kan ik dit nou zo bouwen dat de item in de collection ook daadwerkelijk wordt aangepast? De collection kan niet van het type MyClass worden, omdat er meerdere soorten objecten (afgeleiden van MyClass) in moeten...

  • bille
  • Registratie: Mei 2000
  • Laatst online: 06-05 18:25

bille

Don't call me Buff

hm die 2e zou toch wel moeten werken... das een explicit cast naar MyClass.. krijg je daar geen exceptie op toevallig?

en zoiets?

code:
1
2
MyClass tmp = (MyClass)myCollection[0];
tmp.myProperty=":(";


overigens heb je voor dit soort zaken ook collectie class Vector aka ArrayList -> http://www.dotnet247.com/...ollections/ArrayList.aspx

hier vindt je alles over het casten:
http://www.c-sharpcorner....onversionsInCSharpRVS.asp

[ Voor 156% gewijzigd door bille op 27-10-2004 19:38 ]

Ultra Pilammo 6666Mhz AMD, 4251Mbit/s RAM, Gefors V6666 MegaTurbo, 43" TFS, Ultra 80Gig Firewire netwerkkaart en 5D geluid met 66 speakers in 5 dimensies


Verwijderd

Topicstarter
ik krijg nergens een exceptie op...

een arraylist is geen optie want de collection en MyClass zijn third-party controls...

  • XKB
  • Registratie: Oktober 1999
  • Laatst online: 05-04-2021

XKB

Anonymous functional

Jouw probleem is toch dat je ipv een reference een copy van een object krijgt na de cast? Als dit zo is, kan je de code niet herscrhijven? Of het object weer terugschieten in de collection?

Choose for Choice! Choose Linux! | src van icon


Verwijderd

Topicstarter
klopt hij maakt een kopie aan van het object in de collectie. wat bedoel je precies met 'je code herschrijven', want das natuurlijk de oplossing op alle problemen ;)

het object terugschieten in de collectie gaat wel maar is weer zo'n gedoe...als het niet anders (makkelijker) kan dan moet het wel