[an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]
 
[an error occurred while processing this directive] [an error occurred while processing this directive]
Skåne Sjælland Linux User Group - http://www.sslug.dk Home   Subscribe   Mail Archive   Forum   Calendar   Search
MhonArc Date: [Date Prev] [Date Index] [Date Next]   Thread: [Date Prev] [Thread Index] [Date Next]   MhonArc
 

Re: [PROGRAMMERING] C# variabel type problem på tv ærs af klasser



On Sun, 02 Sep 2007 23:32:26 +0200
Ole Kofoed Hansen <sslug@sslug> wrote:

> Jesper K. Pedersen skrev:
> > Den kryptiske emnelinie viser nok det faktum at jeg er rimeligt ny i
> > objektorienteret programmering og ikke mindst C#
> > 
> > I forbindelse med at lære brugen af klasser har jeg lavet et lille
> > program, som består af 2 klasser.
> > 
> > class spusDB - et database objekt der kan hente nogle data fra min
> > PostgreSQL server
> > I spusDB har jeg en ArrayList som indeholder nogle resultater fra
> > databasen. I denne ArrayList er hvert objekt en struktur med to
> > strenge. ArrayListen er "public" og kan derfor læses fra andre
> > klasser (dårlig objektorientering... ved det godt - men jeg er
> > amatørnybegynder)
> > 
> > Da jeg fra en anden klasse skal udlæse dataene fra den af spusDB
> > genererede ArrayList løber jeg ind i et problem.
> > Jeg forsøger at gå igennem ArrayList med 
> > 
> >     foreach (EmployeeType emp in spusAccess.employeeList)
> >       Console.WriteLine("Id: {0}\tName: {1}", emp.id, emp.name);
> > 
> > Får jeg følgende runtime fejl :
> > 
> > Unhandled Exception: System.InvalidCastException: Cannot cast from
> > source type to destination type. at MyProg.Main (System.String[]
> > args) [0x00000]
> > 
> > Dette fungerer dog udemærket hvis min løkke kaldes fra en metode i
> > spusDB klassen.
> > 
> > Hvis main() flyttes fra MyProg til spusDB virker det som det skal.
> 
> Dit problem er, at du har flere forskellige structs med navnet 
> EmployeeType. De er godt nok ens, men for compileren er der tale om 
> forskellige typer, der ikke kan konverteres mellem.
> 
> Løsningen er at definere din struct en gang på samme niveau som 
> klasserne. Eller at lade definitionen i spusDB være public og bruge 
> spusDB.EmployeeType som type i main.
> 
> Må jeg forresten anbefale at bruge en List<EmployeeType> i stedet?
> Den er af dynamisk størrelse ligesom en ArrayList, men er typestærk
> ligesom et array. Og hvis du kommer fra en Perl eller PHP-baggrund,
> er du nok (lige som undertegnede) glad for streng-indekserede arrays.
> Sådan et kan laves som Dictionary<string, EmployeeType>
> 

Nu kommer jeg fra noget lidt mere simpelt (C og en smule assembler har
det også blevet til igennem tiden).

Jeg havde prøvet en del - men havde ikke prøvet at bruge min klasse
definition af strukturen - via spusDB.EmployeeType - men blandede
objektet spusAccess ind i sagen, hvilket jo af logiske grunde (som jeg
nu godt kan se) ikke virkede.

Tak for hjælpen - så fik jeg da lært lidt mere.
Mvh
  Jesper K. Pedersen


 
Home   Subscribe   Mail Archive   Index   Calendar   Search

 
 
Questions about the web-pages to <www_admin>. Last modified 2007-10-01, 02:01 CEST [an error occurred while processing this directive]
This page is maintained by [an error occurred while processing this directive]MHonArc [an error occurred while processing this directive] # [an error occurred while processing this directive] *