我在Delphi中有一个例如:
单元A包含“One”类 单元B包含“One”类
我在一个使用单元A的类中,想要使用B类中的一个静态函数;我该怎么做?在C#中,我写了类似的东西:
B.One.SomeProcedure
甚至我会使用“使用”来“重命名”一个命名空间。在德尔福可以做些什么? (删除单元A的“使用”不是一个选项,也不是重命名两个类中的一个。)
编辑:我正在使用Delphi 2007。
答案 0 :(得分:2)
“使用的课程”是什么意思?也许你的意思是“一个使用的单位”?如果是这样,您需要将A和B都添加到uses
子句中。然后,您可以通过编写A.One.SomeProcedure
或B.One.SomeProcedure
来区分这两个过程。如果您只是编写One.SomeProcedure
,将使用uses
子句中 last 所列单元中的过程。 [此处我假设One
是包含类过程 SomeProcedure
的类。如果SomeProcedure
是One
类的普通过程,您当然需要创建此类的对象并使用它。然后,您可以分别myobj := A.One.Create
或myobj := B.One.Create
,var myobj: A.One
或var myobj: B.One
。{/ p>
(还要记住,每个单元都包含两个 uses
子句:一个位于interface
部分的开头,一个位于implementation
部分的开头。如果您在 N 行使用单元A中的内容,则包含单元A的uses
子句需要位于 N 上方的一行上。)
另请注意,在Delphi中,应该使用TOne
前缀调用类T
。每个人都遵循这个惯例,如果没有它,它看起来很奇怪。
答案 1 :(得分:2)
TNewClassA = class(UnitA.One)和TNewClassB = class(UnitB.One)怎么样?
答案 2 :(得分:1)
您可以使用以下方式:[UnitName]。[功能]。例如B.SomeProcedure
答案 3 :(得分:1)
你可以做同样的事情。 UnitName.ClassName.Method
,就像在C#中一样。