|
![]() |
Registriert seit: 13. Aug 2002 17.213 Beiträge Delphi 10.4 Sydney |
#11
Windows Vista - Eine neue Erfahrung in Fehlern.
|
![]() |
Registriert seit: 18. Aug 2004 Ort: Brackenheim VS08 Pro 2.876 Beiträge |
#12
Bezeichner mussten in Delphi noch nie eindeutig sein. Ich kann in jeder Prozedur die Laufvariable der For Schliefe wieder i nennen, jede Klasse kann eine Methode execute haben, und selbst mehrere globale Variablen können dengleichen Namen haben. Innerhalb der Regeln für die Sprache, muß der Compiler natürlich eindeutig feststellen können, welcher Bezeichner denn eigentlich gemeint ist. Das hat auch eindeutig nichts mit dem Single oder Multipass Compiler zu tun. Nicht eindeutige Bezeichner werden durch mehrmaliges parsen des Quellcodes nicht eindeutiger. Das ist wie die alte Laborregel: Dreimal abgeschntten und immer noch zu kurz.
Jetzt muss ich fragen, ob du dir überhaupt schonmal eine andere .NET-Sprache angeschaut hast ![]()
Code:
ist in anderen .NET-Sprachen problemlos möglich und oft ziemlich nützlich.
public Type Type {...}
![]() ![]() IMHO ein totales no-go falls du APIs anbieten willst. (Sinnlose public member wirken einfach komisch...) ![]() ![]() Mit Sprachen, die auf .Net maßgeschneidert wurden, lassen sich viele Dinge schneller und mit weiger Code lösen. (z.Bsp.: C# oder Chrome)
![]()
Code:
public class MyClass
{ // Methods static MyClass(); public MyClass(); [TMethod(4)] public static Type ClassInfo(@MetaMyClass Self); [TMethod(4)] public static string ClassName(@MetaMyClass Self); [TMethod(4)] public static bool ClassNameIs(@MetaMyClass Self, [In] string Name); [return: TAliasType(typeof(@TClass))] [TMethod(4)] public static @TClass ClassParent(@MetaMyClass Self); [return: TAliasType(typeof(@TClass))] public @TClass ClassType(); public void Dispatch(ref object Message); [TMethod(4)] public static void DoSomething(@MetaMyClass Self); public object FieldAddress([In] string AName); public void Free(); [TMethod(4)] public static bool InheritsFrom(@MetaMyClass Self, @TClass AClass); [TMethod(4)] public static MemberInfo MethodAddress(@MetaMyClass Self, [In] string AName); [TMethod(4)] public static string MethodName(@MetaMyClass Self, MemberInfo ACode); // Nested Types [ComVisible(false), CLSCompliant(false)] public class @MetaMyClass : @TClass { // Methods static @MetaMyClass(); public @MetaMyClass(); public virtual object @Create(); // Fields public static MyClass.@MetaMyClass @Instance; } }
Sebastian
Moderator in der EE |
![]() |
Registriert seit: 25. Nov 2005 Ort: München 1.909 Beiträge Delphi 2010 Professional |
#14
Robert Giesecke
|
![]() |
ForumregelnEs ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus. Trackbacks are an
Pingbacks are an
Refbacks are aus
|
|