Einzelnen Beitrag anzeigen

Robert_G
(Gast)

n/a Beiträge
 
#7

Re: Ein paar Fragen zu den Win-Forms

  Alt 21. Aug 2005, 22:04
Zitat von faux:
Ist der einzige Unterschied zwischen VB.NET, C# und Delphi.NET eigentlich der Syntax, oder wie sehe ich das? :S
Jain...
Alle .Net Sprachen teilen die gleiche RTL (mscorelib.dll) und sie können auch fleißig gegenseitig Klassenbibliotheken verwenden.
D.Net fällt aber durch seine krasse Verwebung mit einer 2. RTL aus der Rolle.
Es ist in D.NBet nicht möglich irgendetwas zu machen, dass keine Bezüge zu dieser RTL bewirkt.
Auch die Art und Weise wie Assemblies geladen werden unterscheidet sich vom .Net Standard.
Während normalerweise nur die KLasse geladen werden, die du auch anfasst (und auch erst dann), verlangt D.Nets Mangel an class constructors, dass sie alle geladen werden. Wieder so ein Kompatibilitätsding um mit der alten initialization/finalization Syntax nicht abzubrechen. Es wird auch einen Haufen Zusatzkrams an deine Klassen hauen, so dass D.Net Assemblies und Klassen immer anders aussehen, als Kompilate aller anderen .Net Sprachen.
Mag hart klingen, aber ich bin basolut nicht einverstanden, mit der Art in der Delphi für Net implementiert wurde.
DAS hat Delphi IMHO einfach nicht verdient...

Edit:
@Chris
class elpers sind aber nur ein simpler Trick. Du verdankst ihnen übrigens, dass dir an jeder Klasse die Methode Dispatch aufgezwungen wird. Innerhalb einer D.Net Assembly könnten sie sinnvoll sein (siehe sakuras XmlNode), aber niemand anders kann es nutzen, da sie nicht von der Runtime unterstützt werden...

Zum Lernen von .Net ist C# eine prima Sache, es kann einfach nicht mehr, als dass, was ihm .Net vor die Füße wirft.

p.s.: Da du den Reflector entdeckt hast:
Teste mal eine kleine kompilierte D.Net Assembly gegen ihr C# Gegenstück.

Delphi-Quellcode:
type
  SomeClass = class
  public
    procedure DoNothing;
  end;

implementation

procedure SomeClass.DoNothing;
begin
end;
Code:
public class SomeClass
{
  public void DoNothing()
  {}
}
  Mit Zitat antworten Zitat