Oprettet man. d. 16. august 2010 kl. 20:47:50

wb-freekill
wb-freekill (7.697 point. Point ude: 2.410)

Lave Derived class fra Base?

Jeg har en base klasse, hvor jeg sætter nogle fælles værdier i før jeg ved hvad klassen endeligt bliver til. Men hvordan opretter jeg min derived klasse ud fra min base? Altså jeg vil lave et nyt objekt  der arver fra min base klasse men med værdier allerede sat i en base klasse. How?

Skrevet man. d. 16. august 2010 kl. 20:58:39| #1

arne_v
arne_v (1.016.169 point)
Jeg er ikke sikker paa at jeg forstaar spoergsmaalet.

Standard C# syntax tillader:

public class P
{
    private int pv;
    public P(int pv)
    {
        this.pv = pv;
    }
    ...
}

public class C : P
{
    private int cv;
    public C(int pv, int cv) : base(pv)
    {
        this.cv = cv;
    }
    ...
}

P o = new C(123,456);

Skrevet man. d. 16. august 2010 kl. 21:03:23| #2

wb-freekill
wb-freekill (7.697 point)
Altså, jeg sætter nogle værdier på min klasse, som ind til videre kun er base, da jeg ikke ved hvad den bliver til, men jeg ved hvilke base værdier den skal have.

Senere vil jeg så lave en derived klasse som bliver oprettet, men altså har værdierne fra min base klasse sat på forhånd. Kan jeg ikke tage en base klasse som parameter i min derived klasse somehow?

Skrevet man. d. 16. august 2010 kl. 21:17:40| #3

arne_v
arne_v (1.016.169 point)
Du kan godt lave en C constructor som tager en P som argument, men saa skal du kopiere alle vaerdier over.

Skrevet man. d. 16. august 2010 kl. 22:09:00| #4

wb-freekill
wb-freekill (7.697 point)
altså kopiere dem manuelt statisk, jeg kan ikke gøre det direkte?

Skrevet man. d. 16. august 2010 kl. 22:23:58| #5

buzzzz
buzzzz (48.826 point)
ifyoudo.net
value type vs reference type. google det og deraf har du svaret på hvorfor du ikke kan.

Eventuelt http://automapper.codeplex.com/

Jeg er nu heller ikke sikker på at jeg helt forstår hvad det er du vil.

Du laver en klasse som du ikke rigtig ved hvad er/bliver til ... hvorfor laver du den så?

Det er første ting som spriger lige i mine øjne.

Men det lyder stadig til du vil det som arne_v skriver.

Skrevet man. d. 16. august 2010 kl. 23:05:51| #6

janus_007
janus_007 (30.915 point)
Kan du ikke forklare hvad du vil opnå designmæssigt? Det vil være nemmere at forstå!

Skrevet tir. d. 17. august 2010 kl. 09:55:34| #7

arne_v
arne_v (1.016.169 point)
Du kan ikke lave en:

public C(P p)
{
    (P)this = p;
}

hvis det er det som du spoerger om.

Skrevet ons. d. 18. august 2010 kl. 15:52:11| #8

2705
2705 (5.740 point)
Hvis jeg forstår det korrekt giver du bare dine variable i base-klassen de værdier de skal have. Når du så arver fra den klasse kan du sætte variablene derfra.

Altså:

BaseClass
{
  int v = 10;
}

DerivedClass : BaseClass
{
  v = 20;
}

Skrevet tir. d. 24. august 2010 kl. 16:04:44| #9

wb-freekill
wb-freekill (7.697 point)
Jeg kopierede værdierne over manuelt, arne smid et svar.

Skrevet tir. d. 24. august 2010 kl. 16:11:24| #10


Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Print fra Windows Service på Win2008

Oprettet den 24. maj 2012 kl. 11.17
jps6kb giver 200 point for svar | Giv et svar »

Udskrive en Breadcrumb (Jeg er her >>)

Oprettet den 18. maj 2012 kl. 12.04
Qbruger giver 200 point for svar | Giv et svar »

Hjælp til at lokalisere fejl i CMS (synkron.via) dll

Oprettet den 16. maj 2012 kl. 19.31
jokkejensen giver 200 point for svar | Giv et svar »



   




Tips & Tricks fra PC World

Teaser billede

Læserne: Her er vores værste it-indkøb

Det er ikke al it-udstyr, som er det rene guld. Her er nogle af læsernes skrækhistorier.


Anmeldelser fra PC World

Teaser billede

Test: Mobil med Ferrari-design - og en Trabant-motor

Motorola har begået endnu en smartphone med lækkert design og potentiale til at være blandt de bedste. Men den når ikke i mål. Se her hvorfor.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Sådan siger du farvel til Facebook

Læs her, hvordan du dropper Facebook og i stedet anvender nogle brugervenlige alternativer, så du stadig kan være social på nettet.


Nyheder fra Computerworld

Teaser billede

Galleri: De fedeste håndholdte gennem 40 år

Her har du de mest banebrydende håndholdte computere gennem alle tider.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger