Einzelnen Beitrag anzeigen

Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Globale Implementation-Variablen und generische Methoden

  Alt 7. Jan 2020, 09:39
Delphi-Version: 10.3 Rio
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."
  Mit Zitat antworten Zitat