Hallo,
Was soll ich denn hier von halten?
Delphi-Quellcode:
type
TBeispiel1<T> = class
public
procedure Test1();
end;
TBeispiel2 = class
public
procedure Test2<T>();
end;
implementation
var
dummy: Integer;
{ TBeispiel1 }
procedure TBeispiel1<T>.Test1();
begin
if dummy = 5 then // [dcc32 Fehler] Unit1.pas(37): E2506 Im interface-Abschnitt deklarierte Methode des parametrisierten Typs darf kein lokales Symbol 'dummy' verwenden
begin
end;
end;
{ TBeispiel2 }
procedure TBeispiel2.Test2<T>();
begin
if dummy = 5 then // [dcc32 Fehler] Unit1.pas(45): E2506 Im interface-Abschnitt deklarierte Methode des parametrisierten Typs darf kein lokales Symbol 'dummy' verwenden
begin
end;
end;
Warum zum Teufel kann/darf ich in generischen Klassen/Methoden nicht auf globale Implementation-Variable zugreifen?
Mal davon abgesehen, dass man es zwar in vielen Fällen umgehen kann.
Aber was hält den Compiler da ab? Ich verstehe nicht womit der Compiler dort Probleme haben sollte.
Kann da irgendjemand was zu sagen?
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."