[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



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>

Med venlig hilsen

Ole



 
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] *