Avatar billede Slettet bruger
21. juni 2006 - 09:47 Der er 4 kommentarer

Class Inheritation

Jeg har leget lidt med, at opdele mine klasser for at gøre koden mere overskuelig, fx vil jeg gerne kunne ændre en variabel der findes i en anden cs fil - samme klasse.

Jeg har lavet dette, her er det muligt at udskrive varibalen fra en anden klasse uden at overfører i contructer osv.
Men jeg kan ikke ændre værdien i den, så den ændre sig i min Form1 klasse også, er det overhoved muligt med en simpel løsning?

namespace ClassInheritation
{
    public partial class Form1 : Form
    {
        public string TestString = "Original streng";

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            InheritedClass Test = new InheritedClass();
        }
    }


    class InheritedClass : Form1
    {
        public InheritedClass()
        {
            MessageBox.Show(base.TestString);
            base.TestString = "Ændret streng fra anden klasse!";
        }
    }
}
Avatar billede hmortensen Nybegynder
21. juni 2006 - 10:11 #1
Du kan blot lave en ny fil, og skrive sådan her:

namespace ClassInheritation
{
    public partial class Form1
    {
      //kode som er en del af Form1 klassen
    }
}

Så vil begge klasser blive tolket som en, fordi de hedder det samme og er partial.
Avatar billede akempff Nybegynder
21. juni 2006 - 10:32 #2
Fordi du nedarver, har din InheritedClass sin egen TestString.  Den kan du tilgå via instancen så her:

public InheritedClass()
        {
            this.TestString = "Ændret streng fra anden klasse!";
            MessageBox.Show(this.TestString);
           
        }
Avatar billede Slettet bruger
21. juni 2006 - 11:34 #3
Form1.cs

namespace InheritedClass
{
    public partial class Form1 : Form
    {
        public string TestString = "Original streng";

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
           
        }
    }
}


PartialClass.cs

namespace PartialClass
{
    public partial class Form1
    {
     
    }
}

Jeg kan ikke "se" Teststring fra mit PartialClass namespace inde i public partial class Form1 ?
Avatar billede hmortensen Nybegynder
21. juni 2006 - 13:14 #4
Fordi det er forskellige namespaces.
Du behøver ikke lave strengen public når det er en partial klasse.
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