online 1
gast (50)

/ Forum / Anwendungen(Java,C++...)

Anwendungen(Java,C++...)Anwendungen(Java,C++...)

Fragevon MixMax vom 19.02.2021, 16:59 Options

Lösung

Klassen vererben in C# (VS2008)

Hallo leute...

ich hab eine grundlegende Frage wo ich nicht hinter komme...

bei einem Programm mit Fenstern wird die klasse Forms als basisklasse genommen - sieht dann so aus z.B.

namespace CabCreator
{
    public partial class win_main : Form
    {


nun möchte ich eine eigene Klasse mit zusätzlichen Funktionen schreiben die nicht als objekt in den funktionen verwendet wird sondern als direkte aufrufbare Funktionen zur verfügung stehen.

derzeit mache ich das mit einem Objekt, das wird erstellt und dann objekt.funktion().
sieht dann so aus:


namespace CabCreator
{
    public partial class Fenster_main : Form
    {
        private NameSpace.Klasse TestObj = new NameSpace.Klasse();
        public Fenster_main()
        {

            if (TestObj.OffeneFunktion())
            {
...
            }
        }
...



ich würde aber lieber die Funktion (hier TestObj.OffeneFunktion()) direkt ausführen können. Dazu muss (denke ich) die klasse anders deklarieren das die die funktionen der anderen Klasse mit nimmt.

    public partial class Fenster_main : Form


ersetze ich "Form" gegen "NameSpace.Klasse" so fehlen natürlich die Funktionen um eine Fensteranwendung zu erstellen...

jemand da erfahrung?


Antwort schreiben

Antwort 1 von gresti vom 19.02.2021, 23:40 Options

Hi MixMax,

ich hab zwar sehr sehr wenig Ahnung von C++ aber ein Link hab ich gefunden der dir vieleicht bissel weiterhilft.

Gruß
gresti

Antwort 2 von JasonDelife vom 23.02.2021, 14:26 OptionsLösung

Lösung
Du kannst in C# nur von 1 Klasse erben, mehr geht nicht.

Das heißt, entweder
-> Rufst du die Methode direkt auf, hast dann aber kein Fenster.

public class MeinKlasse : NameSpace.Objekt
//...
Methode();


oder
-> Rufst Objekt..Methode(); auf, und hast ein Fenster.

public class MeinKlasse : Form
//...
Objekt.Methode();



Grüße, JasonDelife.

Antwort 3 von JasonDelife vom 23.02.2021, 14:28 Options

Nachtrag:
Bei Objekt.Methode() würde es sich um eine statische Methode handeln, die sowieso nicht vererbt wird.
Vererben geht nur, wenn es so wäre:

Objekt o = new Objekt();
o.Methode();

Antwort 4 von MixMax vom 01.04.2021, 15:11 Options

schade, hatte gehofft mehr als eine klasse erben zu können da ich die funktionen von einer eigenen Klasse hinzufügen wollte aber da es ein Fenster ist, muss ich die Form - klasse haben also habs anders gelöst indem ich ein objekt erstelle unter dem die funktionen dann public verfügbar sind...

Ähnliche Themen

vc++ zeigt nicht alle Klassen an!
StefanR  27.09.2007 - 8 Hits - 1 Antwort

Java: Swing,innere klassen
sunny84  16.04.2008 - 19 Hits - 4 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026