名前空間はユニットのコンテナであることを理解しました。しかし、私はそれをうまく理解していません。伝えたいことをもっとよく説明しようと思います。たとえば、私は4つのユニットを持っています:
1) Animals // es: class TAnimals
2) Animals.Dog // es: class TDog
3) Animals.Cat // es: class TCat
4) Animals.Cat.Female // es: class TFemale
もちろん、この4つのユニットは4つの異なるファイルにあります。新しいユニットを作成し、それをすべて使用する必要がある場合は、次のように記述します。
uses
Animals, Animals.Dog, Animals.Cat, Animals.Cat.Female
さて、問題がほとんどないまではありませんが、いつまでは非常に多いのでしょうか。だから私はもっとうまく管理できるので知りたかったのですが、1つのユニットだけを作りました:他のすべてを含む動物(名前空間のルート)、次のようなものを持っています:
uses
Animals;
また、Animalから、2番目、3番目などのレベルの他のすべての名前空間で定義されている他のすべてのクラスにアクセスするには、次のようにします。
program Project1;
uses
Animals;
var
x: Animals;
begin
x := TAnimals.Cat.Female.Create;
try
....
finally
x.Free;
end;
end.
インターネットで検索すると、インターフェイスを使用して何かを見つけたかもしれませんが、私の意見では、delphi xe2がネイティブであるものの場合、正しい解決策ではないという印象があります。おそらく私は間違っているか、古いバージョンのデルファイを参照しています。誠意をこめてわかりません。しかし、もちろん可能であれば、私はそれをするのと同じように知りたかったのです。どうもありがとうございました。