AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Interfaces in DotNet ganz anders?

Ein Thema von Fingolfin · begonnen am 1. Dez 2004 · letzter Beitrag vom 4. Dez 2004
 
Fingolfin

Registriert seit: 7. Okt 2003
62 Beiträge
 
#1

Interfaces in DotNet ganz anders?

  Alt 1. Dez 2004, 19:33
Hi, ich arbeite mich gerade mit Delphi 2005 in DotNet ein und mir ist da etwas aufgestoßen.

Früher (in Win32) hat man interfaces üblicherweise ja so verwendet:

Code:
  ITest = interface
    procedure DoSomething;
  end;

  TTest = class(TInterfacedObject, ITest)
  public
    constructor Create;
    destructor Destroy; override;
    procedure DoSomething;
  end;

var
  FTest: ITest;

procedure InterfaceErzeugen;
begin
  FTest := TTest.Create;
  FTest.DoSomething;
end;

procedure Interfacefreigeben;
begin
  FTest := nil;
end;
Dabei führte das nilen der Interfacereferenz zur Freigabe, es wurde also in diesem Fall das Destroy von TTest aufgerufen.

Unter Delphi 2005 passiert das nicht. Das nilen nilt zwar die Interface-Referenz, der Destructor wird aber überhaupt nicht berührt.

Ich habe jetzt schon Sachen wie

Code:
var
  FTest: TTest;
procedure Irgendwas;
begin
  FTest := TTest.Create;
  FTest.DoSomething;
  FTest.Free;
end;
getestet und die haben anscheinend ohne Probleme funktioniert. Dabei ist doch gerade die Mischung von Object- und Interfacereferenzen das absolut böse "ohoh" in Delphi Win32.

Kann mich da mal jemand aufklären bitte? Bin sehr verwirrt.

Vielen Dank schonmal.
  Mit Zitat antworten Zitat
 


Forumregeln

Es 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

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz