Klassen, erben, verschieden



  • Hi guys,
    überall lese ick, dat man bei .NET aus Klassen erben kann, die in anderen Sprachen codiert sind. Beispiel:
    ClassCpp ist in Managed C++ geschrieben
    ClassCs erbet von ClassCpp aber wird in C# geschrieben.

    Wie geht das?



  • das geht ganz normal.

    denn jedes Programm wird ja zu .NET Assemblys 'kompiliert'

    Und diese assemblys lassen sich ganz natuerlich verwenden. also einfach die klasse importen und dann davon erben lassen.

    du musst .NET als die Sprache sehen - die Programmiersprachen bieten lediglich eine andere syntax um .NET zu programmieren.
    aber ob du jetzt

    i=5; in C#, managed C++, Basic oder sonstwas schreibst, ist egal, denn es wird daraus der exakt selbe MSIL (oder wie die assembler sprache von .NET heisst) Code.



  • Original erstellt von Shade Of Mine:
    das geht ganz normal.

    So steht auch überall 🙂

    **also einfach die klasse importen und dann davon erben lassen.
    **

    😕 Wie denn?? was soll ich aus dem C++ PJ in die neue C# PJ reinbringen, und was heißt Klasse importieren?? bitte Arbeitsschritte geben.

    Grüße



  • ich hab die syntax nicht genau im kopf

    aber:
    du erstellst eine Klasse in C#
    wie erbst du von dieser in C#?

    using Animal;
    public class Dog : public Mammal
    {
    //foo
    }

    und wie läuft es ab, wenn wir jetzt von Mammal erben wollen wenn es in managed C++ geschrieben ist?

    using Animal;
    public class Dog : public Mammal
    {
    //foo
    }

    exakt gleich!
    denn wir haben Mammal kompiliert und es entstand ein assembly. Welche sprache verwendet wurde ist nicht mehr feststellbar, denn Mammal ist jetzt ein .NET assembly.

    Ich kann die Syntax für die anderen .NET Sprachen nicht, aber wenn du Mammal implementieren willst, dann könnte das in C++ so aussehen:

    //inkludiere Animal
    //ich weiss die syntax dafuer leider nicht

    class Mammal : public Animal
    {
    //foobar
    }

    und schon kannst du in C# von einer managed C++ Klasse erben.

    Denn es gibt keine Trennung der Sprachen - jeder Code wird zu MSIL Code - und dieser ist ein Bytecode -> egal ob du C# oder managed C++ oder sonstwas verwendest, das resultat ist das selbe.

    Du kannst mit keiner Sprache mehr oder weniger machen als mit einer anderen - unter .NET ist der einzige unterschied zwischen den Sprachen die Syntax (aber sogar Visual Basic .NET ist genauso mächtig wie managed C++)


Anmelden zum Antworten