Also halten wir fest:
Delphi beherrscht Namespaces, macht diese aber nicht von Dateigrenzen unabhängig. Ich wäre als Projektleiter, deseen Existenz von Dingen wie Qualität, Wartbarkeit des erzeugten Codes abhängt, und der Vorhersagbarkeit von Kosten abhängt nicht so sicher, ob ich über die Form von Disziplin, die Delphi hier erzwingt, nicht doch eher glücklich sein sollte.
Dasgleiche gilt für die Verwendung von Schlüsselwörtern als Bezeichner. Es ist die Aufgabe, moderner Compiler nicht alles zuzulassen, was machbar ist. Das dürfte C# im Vergleich zu C++ ganz deutlich zeigen. Ob die Verwendung von Schlüsselwörtern als Bezeichner nicht aus gutem Grund verweigert wird, nämlich um den Pascalguidelines folgend, Wert auf die Lesbarkeit des Codes zu legen, muss dann halt jeder Entscheider, der die Kosten seiner Entscheidung verantworten muss, selber entscheiden.
Soweit das aufgrund der Sprachunabhängigkeit von .Net nowendig ist, kann Delphi aber sehr wohl Schlüsselwörter als Bezeichner verwenden.
Die .Net Guidelines werden damit doch erfüllt.
Zitat:
Erweiterte Bezeichner
Besonders bei der Programmierung in Delphi für .NET könnten Sie auf Bezeichner (z.B. Typen oder Methoden in Klassen) stoßen, die denselben Namen wie ein Delphi-Schlüsselwort haben. Eine Klasse könnte z.B. eine Methode mit dem Namen begin haben. Ein weiteres Beispiel ist die CLR-Klasse System.Type im Namespace System. Type ist ein Delphi-Schlüsselwort und darf nicht als Name für einen Bezeichner verwendet werden.
Wenn Sie den Bezeichner mit der vollständigen Namespace-Spezifikation qualifizieren, dann besteht kein Problem. Um beispielsweise die Klasse System.Type einzusetzen, müssen Sie ihren voll qualifizierten Namen angeben:
var
TMyType : System.Type; // Der voll qualifizierte Namespace wird verwendet, um
// die Doppeldeutigkeit mit dem Delphi-Schlüsselwort auszuschließen.
Der Ampersandoperator (&) kann als eine kürzere Alternative zum Auflösen der Doppeldeutigkeit zwischen Bezeichnern und Delphi-Schlüsselwörtern verwendet werden. Wenn Sie auf eine Methode oder einen Typ mit demselben Namen wie ein Delphi-Schlüsselwort stoßen, können Sie die Namespace-Spezifikation weglassen. Sie müssen dann aber dem Bezeichnernamen ein Ampersand voranstellen. Im folgenden Code wird z.B. ein Ampersand zur Unterscheidung der CLR-Klasse System.Type von dem Delphi-Schlüsselwort type verwendet.
var
TMyType : &Type; // Präfix '&' ist ok.