2.4k Aufrufe
Gefragt in Anwendungen(Java,C++...) von mixmax Experte (2.2k Punkte)
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?

4 Antworten

0 Punkte
Beantwortet von gresti Experte (1.8k Punkte)
Hi MixMax,

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

Gruß
gresti
0 Punkte
Beantwortet von jasondelife Mitglied (109 Punkte)
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.
0 Punkte
Beantwortet von jasondelife Mitglied (109 Punkte)
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();
0 Punkte
Beantwortet von mixmax Experte (2.2k Punkte)
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...
...