Avatar billede maxmuldjord Nybegynder
28. november 2004 - 11:01 Der er 13 kommentarer og
1 løsning

Arv og base

Hej exp.

Jeg har nedenstående kode der driller lidt.

Den vil have en tuborg efter public Radio(): base() og det kan jeg ikke få til at passe. Jeg ville også høre om i kunne forklare lidt om base eller har et link til hvor jeg kan læse lidt om det, vores bog forklare det ikke så godt syntes jeg.

Som det ser ud nu skulle jeg gerne have den til at udskrive "Radio on"

using System;

namespace ElectronicDevice
{
   
    class ElectronicDevice
    {
        private string brandName;
        private bool isOn;
        public ElectronicDevice()
        {
            brandName = "unknown";
            isOn = false;
        }
   
       
       
        public string BrandName
        {
            get
            {
                return brandName;
            }
            set
            {
                brandName = value;
            }
        }

        public virtual void SwitchOn()
        {
            isOn = true;
            Console.WriteLine("On");
        }

        public virtual void SwitchOff()
        {
            isOn = false;
            Console.WriteLine("Off");
        }
    }
    class Radio:ElectronicDevice
    {
        public Radio(): base()
       
            public override void SwitchOn()
            {
                base.SwitchOn();
                Console.WriteLine("Radio");
            }
   
        public override void SwitchOff()
        {
            base.SwitchOff();
            Console.WriteLine("Radio");
        }
   
   
        class Computer:ElectronicDevice
        {
        }

        class MobilePhone:ElectronicDevice
        {
            [STAThread]
            static void Main(string[] args)
            {
               
                Console.ReadLine();
            }
        }

    }
}
Avatar billede arne_v Ekspert
28. november 2004 - 11:04 #1
base er oarent klassens constructor og der skal selvfølgelig { } omkring klassens
egen constructor.

Altså:

class Radio:ElectronicDevice
{
    public Radio(): base()
    {
    }
    ...
}
Avatar billede arne_v Ekspert
28. november 2004 - 11:04 #2
... er parent klassens ...
Avatar billede arne_v Ekspert
28. november 2004 - 11:06 #3
Hvis constructorerne ikke gør noget så behøver du dem slet ikke.
Avatar billede arne_v Ekspert
28. november 2004 - 11:10 #5
Jeg lavede engang denne her klasse:

public class MyTcpClient : TcpClient
{
    public MyTcpClient(string hostname, int port) : base(hostname, port)
    {
    }
    public new Socket Client
    {
        get {
            return base.Client;
        }
    }
}

MyTcpClient arver fra TcpClient.

MyTcpClient constructor har 2 argumenter.

TcpClient constructor har 2 argumenter.

MyTcpClient constructor kalder TcpClient constructor.

[og hvis nogen synes koden ser mystisk ud så er pointen at TcpClient klassens
Client property er protected, men det ligger lidt ud over dette spørgsmål]
Avatar billede sovsekoder Nybegynder
28. november 2004 - 11:11 #6
...base kan også bruges til at tilgå variabler og metoder i "base" klassen.
Avatar billede maxmuldjord Nybegynder
28. november 2004 - 11:57 #7
hmm når jeg prøver din måde Arne vil den have en } i linien under (det er den fejlmelding jeg får) hvad er det jeg overser?
Avatar billede maxmuldjord Nybegynder
28. november 2004 - 11:59 #8
ahh , ok jeg er med
Avatar billede arne_v Ekspert
28. november 2004 - 12:00 #9
Ja - du starter på constructor med { og du slutter på constructor med },
så kommer de øvrige metoder i klassen.

Sæt den }.

Og fjern den nede i bunden hvis den er for meget der.
Avatar billede maxmuldjord Nybegynder
28. november 2004 - 12:02 #10
men jeg har som sædvanligt problemer med Console.Writeline Se jeg ville lave en klasse = class Tester der indeholder min main, hvad gør jeg her for at få den til at udskrive "Radio On"?
Avatar billede arne_v Ekspert
28. november 2004 - 12:04 #11
Radio r = new Radio();
r.SwitchOn();

måske
Avatar billede maxmuldjord Nybegynder
28. november 2004 - 12:07 #12
ok Arne

Et svar den herre

8>)
Avatar billede arne_v Ekspert
28. november 2004 - 12:08 #13
kommer her
Avatar billede maxmuldjord Nybegynder
28. november 2004 - 13:23 #14
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