Zum Inhalt springen

C# von library ableiten ? (vererbung)


Empfohlene Beiträge

Geschrieben

Hallo!

Habe in anderen Foren keine klare Antwort erhalten bisher:

Da ich gerade das erste mal mit libs (*.dll) progge,

wollte ich mal wissen, ob man normale Klassen aus libs ableiten kann?

Ich habs mal versucht, aber es funktioniert nicht.

Falls sowas geht, hat jmd einen Beispielcode für mich?

Grüße

Geschrieben

Ich erhalte die

Fehlermeldung:

"No overload for method 'Klassenname_der_lib' takes 0 arguments"

Das bezieht sich auf den Klassennamen der lib nach dem Doppelpunkt.

Das is scheinabr eine Fehlinterpretation von VS.

Von 'normalen' Klassen kann ich ableiten, da klappt der build.

Was mache ich da falsch bei der lib?

(namespace is auch berücksichtigt)

Geschrieben (bearbeitet)

Konstruktoraufruf der Basisklasse - kein Standardkonstruktor gefunden.

[Edit]

Wer lesen kann und so.

Dann halt Methode - sicher, dass es die parameterlos gibt?

Bearbeitet von TDM
Geschrieben

Es erfolgt überhaupt kein Aufruf der lib.

Es ist eine leere Testklasse ohne Methoden.

Nur die lib hat normalen Inhalt.

-> Mit allen anderen Klassen funktioniert das ableiten, nur mit der lib nicht.

-> Ich kann mit der lib ganz normal arbeiten, wenn sie referenziert ist, aber eben nicht davon ableiten,

da kommt die Fehlermeldung beim build.

Also sobald ich "MeineKlasse:MeineLibklasse" schreibe ist der Spaß vorbei.

Wer weiß, was ich falsch mache?

Geschrieben (bearbeitet)

Hi. Was du "Libs" nennst, heißt in .NET Assembly.

"wollte ich mal wissen, ob man normale Klassen aus libs ableiten kann?"

Kommt drauf an was "normale" Klassen sind. Du kannst von einer öffentlichen Klasse in einer Assembly weitere Klassen ableiten. Das tut man ja permanent sobald man Interfaces verwendet die z.B. in System definiert sind.

"Falls sowas geht, hat jmd einen Beispielcode für mich?"

Eine neue Assembly erstellen, eine leere Klasse erstellen (public class). Eine neue Assembly oder Applikation erstellen, der neuen App eine Referenz auf das zweite Projekt oder der bereits kompilierten Assembly hinzufügen. Eine neue Klasse erstellen, den Namespace der ersten Klasse inkludieren ( using FirstAssembly; ) und ganz normal mit : ableiten.

Bei Problemen den Sourcecode posten.

Bearbeitet von Argbeil
Geschrieben
Es erfolgt überhaupt kein Aufruf der lib.

Es ist eine leere Testklasse ohne Methoden.

Dann versteh ich nicht, wo eine Methode aufgerufen wird:

"No overload for method 'Klassenname_der_lib' takes 0 arguments"
Geschrieben


using dllTestmitmatrix;


namespace aus_dll_ableiten_Test

{

    public class Class1:MatrixCalc

    {

        public Class1()

        {


        }

    }

}

Dies funktioniert nicht. Da kommt dann die Fehlermeldung beim build.

Gegentest: Nur mit der dll normal referenziert kann ich wunderbar arbeiten.

(Hinweis: die dll enthält nur die eine Klasse 'MatrixCalc')

Geschrieben
Und der Namespace der Klasse in der DLL heißt wirklich dllTestmitmatrix?

Ja

Stimmen die Verweiße?

Ja, sonst könnte ich wohl nicht ohne Ableitungsversuch perfekt damit

arbeiten.

Oder sind für die Vererbung spezielle Verweise nötig?

Was für Konstruktoren hat die Klasse?

Nur einen:

public MatrixCalc(int m, int n)

{

...

...

}

Wie gesagt, die MatrixCalc-Klasse an sich ist in Ordnung. Tja.

Geschrieben
@ guybrush

Wie muss es dann heißen?

Ich dachte bei der Veerbung kommen keine Klammern hinter dem Klassennamen oder sowas?

Auch wenn ich nicht der Pirat bin:

Wenn du nur einen Konstruktor (mit Parametern) in einer Basisklasse hast, musst du diesen in dem Konstruktor der abgeleiteten Klasse explizit aufrufen.

Bsp:


        public Class1():base(1,1)

        {


        }

Ruft den Basiskonstruktor mit den Parametern {1,1} auf.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...