Delphi 中两个单元中的两个类具有相同的类名

5hcedyr0  于 2023-04-20  发布在  其他
关注(0)|答案(4)|浏览(136)

在 Delphi 中有一个例子:

  • 单元A包含类One
  • 单元B包含类One

我在一个使用单元A的类中,我想使用B中的类One中的静态函数;我该怎么做?
在C#中,我会写这样的代码:

B.One.SomeProcedure

甚至,我会使用using来“重命名”一个名称空间。在 Delphi 中我能做什么呢?删除单元Auses不是一个选项,重命名两个类中的一个也不是。
使用 Delphi 2007

iibxawm4

iibxawm41#

您可以使用以下方式:[UnitName].[Function].例如B.SomeProcedure

uwopmtnx

uwopmtnx2#

你可以做完全相同的事情. UnitName.ClassName.Method,就像在C#中一样。

tzcvj98z

tzcvj98z3#

你说的“a class that uses”是什么意思?也许你说的是“a unit that uses”?如果是这样,你需要在uses子句中同时添加A和B。然后你可以通过写A.One.SomeProcedureB.One.SomeProcedure来区分这两个过程。如果你只是写One.SomeProcedure,将使用uses子句中列在 last 的单元中的过程。[这里我假设One是包含类过程SomeProcedure的类。如果SomeProcedure是普通过程当然,你需要创建这个类的对象并使用它。然后你可以做myobj := A.One.Createmyobj := B.One.Create,其中var myobj: A.Onevar myobj: B.One分别是。]
(还请记住,每个单元包含 * 两个 * uses子句:一个在interface部分的开头,一个在implementation部分的开头。如果您在第 N 行使用单元A中的内容,则包含单元A的uses子句需要位于 N 上面的一行。)
还要注意,在 Delphi 中,类应该被称为TOne,前缀为T。每个人都遵循这个约定,没有它看起来很奇怪。

y4ekin9u

y4ekin9u4#

TNewClassA = class(UnitA.One)和TNewClassB = class(UnitB.One)如何?

相关问题