Einzelnen Beitrag anzeigen

OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#12

Re: [C#] Fragen zu automatisch generiertem Code

  Alt 24. Jul 2004, 19:08
Zitat:
Dispose ist da wohl der Destruktor wenn ich die bisherigen Versuche mit C# richtig deute.
Es gibt in C# keine Destruktoren. Wenn überhaupt, gibt es nur Finalizer, die mit derselben Syntax geschrieben werden wie in C++ Destruktoren (also ~Classname()).
Dispose ist generell die einzige Methode der IDisposable-Schnittstelle. Sie dient dazu, dem Benutzer die Möglichkeit der deterministischen Zerstörung von Objekten zu geben, die .net ansonsten nicht anbietet. Sie wird meist verwendet, um nicht gemanagete Ressourcen freizugeben. Im .net SDK zu finden unter "Cleaning Up Unmanaged Resources".
In diesem besonderen Fall handelt es sich aber um eine Methode, die bereits in Component definiert wird. Wie im Code zu sehen, ruft sie auch die Dispose-Methoden aller Unterkomponenten auf. Mehr dazu unter Component.Dispose im .net SDK.

Zitat:
Das ist aber ein "Kann" kein "Muss", denke ich. Nennt sich dann, glaube ich, [b]inline-Irgendwas oder so.
Das ist in C++ so. Nicht in C#.

Zitat:
C# ist nunmal keine Sprache, die man hinterher sauber lesen kann.
Dafür gibt es zum einen die Regions und das Folding und zum anderen den Object Browser.

Zitat:
Soll das bedeuten das Foo keine Parameter übergeben werden? Wenn ja dann wird das ohne das Void geschrieben.
In C ist es erforderlich, für eine Funktion ohne Parameter explizit void in die Klammern zu schreiben. Diese Schreibweise ist in C++ nicht nötig, aber möglich. In C# ist sie nicht möglich.

Noch etwas generelles: In C# gibt es nichts "under the hood", also Code, der automatisch vom Compiler erzeugt wird wie in Delphi. Der gesamte Verwaltungscode ist mit drin. Deshalb wurden für C# 2.0 auch partial classes eingeführt, die man also innerhalb mehrerer Dateien definieren kann. Die Designer legen hierzu eine eigene Datei für den gesamten generierten Code an.

[Nachtrag]
Zitat:
Code:
   const String APPNAME = "Hello";
   const String VER = "1.0";
   const String INFO_TEXT = APPNAME + " " + VER+"\nCopyright (c) 2004 Michael Puff\n\nhttp://www.luckie-online.de";
Übrigens entspricht es in .net nicht der Norm, Konstantennamen (oder andere Bezeichner) groß zu schreiben. Siehe hierzu "Design Guidelines for Class Library Developers" im .net SDK (zu finden unter "Documentation Map by Technology").
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat