Avatar billede mach3 Nybegynder
11. april 2007 - 21:10 Der er 5 kommentarer og
1 løsning

c#: oprettelse af dynamiske objekter

Er der nogen som har et tip til, hvordan man kan få følgende til at virke:

class server{

  addCar(string carName){
      car carName = new car();
  }
}

class car{
  int topspeed;
  string color;
  int age;
}

Således kan man tilføje fire biler:
addCar(opel);
addCar(peugeot);
addCar(vw);
addCar(citroen);

Og man kan tilgå objekterne på følgende måde:
opel.age = 2;
peugeot.color = "blue";

Problemet er, at man ikke får lov til at bruge carName argumentet i metoden addCar. Men man ved ikke ved designtime, hvilke biler, som applikationen skal indeholde - det bliver læst ind fra en xml fil ved opstart.

På forhånd tak.

Mvh
Avatar billede hmortensen Nybegynder
11. april 2007 - 22:00 #1
Du kan smide objekterne i en liste og hive fat i dem ved hjælp af en indexer:
liste["Opel"].Age = 2;

Så kan du også iterere over dem.

foreach (Car c in liste)
{
  //c.Age
}
Avatar billede bennytordrup Nybegynder
11. april 2007 - 22:33 #2
Er dit problem i addCar ikke, at du erklærer en lokal variabel med samme navn som din parameter til addCar?
Avatar billede mach3 Nybegynder
12. april 2007 - 07:17 #3
bennytordrup >> Korrekt, men jeg ønsker, at objektet der skal oprettes skal hedde det som argumentet siger.

hmortensen >> Dit indlæg fik mig til at anvende List Generic Class, hvilket ser fint ud indtil videre. Planen er, at applikationen skal fungere ovre WCF. Der er åbenbart nogle problemer i den forbindelse med nogle indbyggede .NET strukturer når de skal serializes (tror jeg). Tror I, at List Generic Class er "kompatibel" med WCF?
Avatar billede mach3 Nybegynder
12. april 2007 - 19:38 #4
Det må vente til en anden tråd. Tid til point.
Avatar billede bennytordrup Nybegynder
13. april 2007 - 08:14 #5
Om objektet oprettes med samme navn som argumentet siger har noget med indholdet af variablerne at gøre - ikke variablenes navne. Og disse har sammenfald. Det burde du ikke kunde.
Avatar billede mach3 Nybegynder
15. juni 2007 - 21:09 #6
Beklager det sene svar. Tak for hjælpen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester