1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Vererbung library C#

Discussion in 'Programmieren' started by Johnny2888, Feb 23, 2009.

Thread Status:
Not open for further replies.
  1. Johnny2888

    Johnny2888 Byte

    Hallo miteinand',

    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
     
  2. daboom

    daboom Megabyte

    Aus dem Stehgreif würde ich mal sagen nein, da eine DLL (oder allgemein ne Library) ja ne Sammlung von bereits compiliertem Code ist. D.h. die könnte ebensogut in z.B. C programmiert worden sein, wo es ja bekanntlich keine Klassen gibt... ;)
     
  3. da_Ferdi

    da_Ferdi Halbes Megabyte

    Doch, geht schon, wenn die Klasse es erlaubt.

    Du musst einen Projektverweis auf die DLL hinzufügen, die erforderlichen using-Direktiven hinzufügen, und dann kannst du ganz normal Klassen von ihr ableiten.

    Der folgende Code deklariert eine Klasse InheritedTestClass, die von der Klasse TestClass aus dem Namespace TestLib erbt:
    Code:
    [COLOR="blue"]using [/COLOR]TestLib;
    ...
    [COLOR="blue"]public [/COLOR][COLOR="Blue"]class [/COLOR][COLOR="teal"]InheritedTestClass [/COLOR]: [COLOR="Teal"]TestClass[/COLOR]
    {
    }
    Also ganz normal eigentlich...
     
  4. Johnny2888

    Johnny2888 Byte

    Genau so hab ich es probiert und es geht leider nicht.....

    Noch andere Vorschläge?
     
  5. da_Ferdi

    da_Ferdi Halbes Megabyte

    Was sagt der Compiler bei der Erstellung?
     
  6. Johnny2888

    Johnny2888 Byte

    Fehlermeldung:

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

    Das bezieht sich auf den Klassennamen nach dem Doppelpunkt.
     
    Last edited: Feb 24, 2009
  7. da_Ferdi

    da_Ferdi Halbes Megabyte

    Das heisst nicht dass von einer Klasse nicht abgeleitet werden kann, das bedeutet, dass eine Methode mit ungültigen Parametern aufgerufen wurde, in deinem Fall erwartet die Methode keine 0 Parameter.
     
  8. Johnny2888

    Johnny2888 Byte

    Nein, das wäre zu einfach......
    Es ist genau wie in deinem Codebeispiel.
    Es wird in meinem Test gar keine Methode oder Konsruktor aufgerufen,
    damit kann es auch keinen Overload oder sowas geben.
    Das wird also irgendwie falsch interpretiert von Visual Studio,
    weil der Klassenname der lib hinter dem Doppelpunkt ist.

    (Gegentest: Von jeder anderen 'normalen' Klasse, kann ich ableiten.)

    Tja, worin liegt der Fehler?

    PS:
    Die lib ist ganz normal als Referenz im Projekt enthalten.
    Muss man da vielleicht noch was beachten, speziell für die Vererbung?
     
  9. Johnny2888

    Johnny2888 Byte

    Rätsel gelöst!

    (Bei Konstruktor fehlte noch der 'base'-Teil, wie ich eben erfahren habe)

    Trotzdem danke.
     
Thread Status:
Not open for further replies.

Share This Page