Avatar billede idiotbarn Nybegynder
08. maj 2005 - 19:24 Der er 10 kommentarer og
1 løsning

Nedarvning i C#

Jeg er ved at lave en hjemmeside som blandt andet skal indeholde nogen "moduler". Hvert modul har et navn, en værdi, en dato og nogen egenskaber.
Jeg vil derfor lave en klasse til dette, men da egenskaberne ikke er ens for alle klasser, går jeg ud fra at det skal laves med en abstrakt klasse og så skal der laves endnu en klasse der nedarver fra denne hvor egenskaberne er deffineret. Jeg har følgende:
---------------------------------------------
namespace Modules {
    using System;

    abstract class Module {
    String name;
    DateTime untilDate;

        //opret
        public Module(String na) {
            name=na;
            }

        //Hent navnet
        public String getName(){
            return name;
        }

        //Set/hent stopdato
        public DateTime StopDate{
            get{
                return untilDate;
            }
            set{
                untilDate=value;
            }
        }

    }
}
---------------------------------------------
namespace Modules {
    using System;

    public class UploadProperties : Module {

        public UploadProperties(){
        }


    }
}


Lige nu gør klassen ikke rigtigt noget, men jeg kan ikke få det kompilet ordentligt, og jeg er ikke helt sikker på at det er bygget ordentligt op. Jeg kompiler med:

csc /t:library /reference:../bin/Module.dll
/out:../bin/Properties.dll Properties.cs

og får flg fejl:

Properties.cs(9,16): error CS1501: No overload for method 'Module' takes '0'
        arguments
e:\Hjemmesider\IS.Net\Admin\Bin\Module.dll: (Location of symbol related to
        previous error)

Hvad er årsagen til fejlen?
Avatar billede arne_v Ekspert
08. maj 2005 - 19:29 #1
UploadProperties  constructor kalde Module constructor med ingen argumenter -
og sådan en er der ikke
Avatar billede arne_v Ekspert
08. maj 2005 - 19:30 #2
Jeg gætter på at du vil:

public class UploadProperties : Module("UploadProperties") {
Avatar billede idiotbarn Nybegynder
08. maj 2005 - 19:44 #3
ah...ja det giver vel lidt sig selv...tak.
nu får jeg en
Properties.cs(7,39): error CS1514: { expected
Avatar billede arne_v Ekspert
08. maj 2005 - 19:55 #4
Hvad er der i linie 7 i Properties.cs ?
Avatar billede idiotbarn Nybegynder
08. maj 2005 - 20:09 #5
public class UploadProperties : Module("UploadProperties") {
Avatar billede arne_v Ekspert
08. maj 2005 - 20:10 #6
jeg er en spade - den skal ned i constructor
Avatar billede arne_v Ekspert
08. maj 2005 - 20:10 #7
public class UploadProperties : Module {

        public UploadProperties() : Module("UploadProperties") {
        }
Avatar billede idiotbarn Nybegynder
08. maj 2005 - 20:18 #8
ok så fungere det...skulle være:
public UploadProperties() : base("UploadProperties"){
men tak for hjælpen
Avatar billede arne_v Ekspert
08. maj 2005 - 20:31 #9
ak ja

C# base
Java super
C++ klassens navn
Avatar billede idiotbarn Nybegynder
09. maj 2005 - 06:38 #10
Tak. Ligger du et svar?
Avatar billede arne_v Ekspert
09. maj 2005 - 07:12 #11
ok
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