partielle Klassen C# im Vergleich zu Java Klassen und Objekterzeugung ?



  • Zeus schrieb:

    Partial Class ist eine Klasse. Der Compiler mergt nur die Klassen zusammen. Dies würde eingeführt weil Werkzeuge (wie der GUI-Builder ) meistens in spezielle Gebiete der Klasse Code ändern und mit eine sehr großen Codeumfang ändern. Die Trennung soll also helfen.

    mir gehts aber nicht um visual designer sondern eigene partial Klassen.

    nochmals in Java habe ich mehrere Klassen .java files. Um nun von einer Klasse auf die andere zuzugreifen übergebe ich die klasseninstanzen z.B. via konstruktor.

    mit partial habe ich das nicht...



  • Geteilter schrieb:

    mit partial habe ich das nicht...

    Weil Du nicht mehrere Klassen hast. Was hat das übrigens mit dem Designer zu tun?

    public partial class XYZ {
      public int A;
    }
    
    public partial class XYZ {
      public int B;
    }
    
    XYZ xyz = new XYZ();
    xyz.A = 12;
    xyz.B = 24;
    


  • nochmals in Java habe ich mehrere Klassen .java files. Um nun von einer Klasse auf die andere zuzugreifen übergebe ich die klasseninstanzen z.B. via konstruktor.

    mit partial habe ich das nicht...

    Jopp. Du hast dann halt eine Klasse auf mehrere Files verteilt.
    Das heisst also, dass Du das Zeug nicht per Konstruktoren rumreichen musst.
    Ist das was schlechtes? Oo



  • Asmodiel schrieb:

    nochmals in Java habe ich mehrere Klassen .java files. Um nun von einer Klasse auf die andere zuzugreifen übergebe ich die klasseninstanzen z.B. via konstruktor.

    mit partial habe ich das nicht...

    Jopp. Du hast dann halt eine Klasse auf mehrere Files verteilt.
    Das heisst also, dass Du das Zeug nicht per Konstruktoren rumreichen musst.
    Ist das was schlechtes? Oo

    Du hast mich verstanden!

    Nein natürlich was gutes!

    Ich war mir nur nicht sicher ob ich das so richtig sehe... 😉



  • Geteilter schrieb:

    ...Nein natürlich was gutes!...

    Ich hoffe der Begriff Antipattern sagt dir etwas (Vor allem der Begriff Gottklasse).

    Nichts gegen partielle Klassen an sich, dieses Feature hat seinen Sinn. Nur wenn ich es richtig raushöre möchtest du aus Faulheit alles in eine Klasse stopfen.

    cu André



  • Geteilter schrieb:

    Ich war mir nur nicht sicher ob ich das so richtig sehe... 😉

    So wie Du es beschreibst siehst Du es falsch.

    Das sind nciht mehrere Klassen, sondern EINE Klasse deren Code auf mehrere Sourcefiles verteilt ist (wie andere hier ja auch shcon gepostet haben)

    In Java gibt es den Zwang 1 Klasse = 1 Sourcefile. Diesen Zwang gibt es z.B. in C++ nicht. Mit dem Keyword partial ermöglich C# es, daß man eine Klasse auf mehrere Files verteilen.



  • loks schrieb:

    Geteilter schrieb:

    Ich war mir nur nicht sicher ob ich das so richtig sehe... 😉

    So wie Du es beschreibst siehst Du es falsch.

    Das sind nciht mehrere Klassen, sondern EINE Klasse deren Code auf mehrere Sourcefiles verteilt ist (wie andere hier ja auch shcon gepostet haben)

    In Java gibt es den Zwang 1 Klasse = 1 Sourcefile. Diesen Zwang gibt es z.B. in C++ nicht. Mit dem Keyword partial ermöglich C# es, daß man eine Klasse auf mehrere Files verteilen.

    dann sind es mehrere Klassendateien in jedem Fall! 😃



  • Der Begriff "Klassendatei" ist unsinn. Wobei ich mich frage, ob das nicht einfach ei Trollversuch ist.



  • Geteilter schrieb:

    dann sind es mehrere Klassendateien in jedem Fall! 😃

    Trenne dich bitte von dem Begriff "Klassendatei". Damit wir nicht aneinander vorbei reden.

    In Java hat jede Klasse eine Datei.
    In C# kann eine Klasse auf mehrere Dateien aufgesplittet werden (mittels partitial), dies ist aber nicht mit mehreren Javadateien zu vergleichen. Da in diesem Fall in C# dennoch aus den Dateien genau eine Klasse erzeugt wird, in Java nicht.

    cu André



  • asc schrieb:

    In Java hat jede Klasse eine Datei.

    Nicht mal das ist wahr. In java können durchaus mehrere Klassen in einer Datei vorkommen, ohne dass das jetzt zum Thema etwas beitragen würde.



  • Es ist natürlich übersichtlicher, wenn Klassen nicht über mehrer Files verteilt werden müssen.

    Nochmal

    //File A
    public partial class Object{
       public int A;
    };
    
    //File B 
    public partial class Object{
        public int B;
    }
    
    // ist das geliche wie 
    //Only one File
    public class Object{
    public int A;
    public int B;
    };
    

    vll. hast du es jetzt gecheckt. In C++ kann die Klassendefinition (h), mit dem Klassen implementation (cpp) trennen.


Anmelden zum Antworten