嗨,谢谢你, 我有一个从我的主类构建的自定义类。在自定义类中,它有另一个作为参数传入的自定义类。我想严格键入参数变量但是当我这样做时,'类型不是编译类型常量等'。 据我所知,这是因为尚未构造用作参数的自定义类。 当我使用变量类型(*)键入参数时,这一切都有效。 我怀疑这是一个设计缺陷,因为我使用的设计模式不正确。它实际上是手工制作的代码,已经收到了一个不熟悉oop概念和设计模式的其他人的大型项目。 我已经考虑在我的主类中为参数类使用虚拟构造函数,但传入的类也采用自定义类(本身带有参数化构造函数)。我正在考虑使用...(rest),以便自定义类的参数是可选的。 有没有其他方法来控制类的构造顺序?其余变量是否有效? 谢谢
(编辑) 在main.as中的构造函数或其他函数
var parameter1:customclass2;
customclass1(参数1);
在customclass1构造函数中:
public function customclass1(parameter1:customclass2) { ....
Flash抱怨我在参数中使用数据类型customclass 2时找不到编译的类型。当我使用可变数据类型*或省略数据类型(无论如何默认为*)时,它不会抱怨。我的理由是因为customclass2尚未构造,因此编译器无法使用。 或者,我没有将customclass2的路径添加到编译器中,但我相当确定我已经排除了这一点。 有超过10,000行代码,整个过程非常有效。我只是为了优化编译器而进行重写 - 严格的数据输入,错误处理等。如果我发现继承等作为选项可用的情况,那么我将使用它但它已经被分成了类(至少在主要部分)。这只是为了我自己的安心,并保持严格的数据类型策略,以便编译器优化更有效。 日Thnx
答案 0 :(得分:1)
我没有将customclass2的路径添加到编译器中,但我相当确定我已经排除了这一点。
所以,如果你没有在任何地方编写类,编译器可以做什么?它当然会窒息。您要么必须编写CustomClass类文件,要么只使用“thing:Object”或“thing:Asteriks”。当你使用“*”类类型时它不会抱怨,因为它可以是数组,字符串,先前声明的类。但是当你指定一些不存在的东西时,无论声明参数的顺序如何,它都会窒息。