两个带有两个循环引用的类

use*_*126 2 delphi circular-dependency

我在两个不同的单元中创建了两个不同的类,我将如何创建循环引用?在Delphi中(类别在不同的单元中)

单元1:

Uses unit2;

type Ta = class(tobject)
   public
       b:Tb;
end;
Run Code Online (Sandbox Code Playgroud)

单元2:

type Tb = class(tobject)
   public
       a:Ta;
end;
Run Code Online (Sandbox Code Playgroud)

Ton*_*son 6

我猜你的意思是我如何摆脱他们!

把它们放在一个文件中,根据你的结构,你可能也是一个答案.

type tb = class;

type Ta = class(TObject)
   public
       b:Tb;
end;

type Tb = class(TObject)
   public
       a:Ta;
end;
Run Code Online (Sandbox Code Playgroud)

其他方式是情境化的,例如你可以抽出一个可以拥有Ta或Tb的类,或者一个类可以由Ta或Tb拥有......

不过我建议你看看接口....

好的两个不同的文件

好吧,不,三个......

Unit3;
    type tc = class(TObject)
        public c:Tc;
    end;

Unit1;
    type Ta = class(TObject)
       public
           b:Tc;
    end;

Unit2;
    type Tb = class(TObject)
       public
           a:Tc;
    end;
Run Code Online (Sandbox Code Playgroud)

要么

Unit3;
type Ic = interface; end;

Unit1;
    type Ta = class(TObject)
       public
           b:Ic;
    end;

Unit2;    
    type Tb = class(TObject)
       public
           a:Ic;
    end;
Run Code Online (Sandbox Code Playgroud)

找到共同的位,在第三个单元中有其他两个基本上使用它.除了其他任何东西,它会给你一个更好的设计.