2011-06-16 45 views
0

嗨和在此先感謝, 我有一個從我的主類構造的自定義類。在自定義類中,它有另一個作爲參數傳入的自定義類。我想嚴格鍵入參數變量,但是當我這樣做時,'類型不是編譯類型常量等'。 我明白,這是因爲用作參數的自定義類尚未構建。 當我使用變量類型(*)鍵入參數時,它全部有效。 我懷疑這是一個設計缺陷,因爲我使用了不正確的設計模式。它實際上是一種手寫代碼,它接收到一個不熟悉oop概念和設計模式的人的大型項目。 我已經考慮在我的主類中爲參數類使用僞構造函數,但傳入的類也需要自定義類(本身帶有參數化構造函數)。我正在考慮使用...(休息),以便自定義類的參數是可選的。 有沒有其他的方法來控制班級建設的順序?其餘變量會起作用嗎? 由於Actionscript 3 - 將自定義類作爲參數傳遞給參數類未構造的自定義類

在構造或其它功能中main.as(編輯)

VAR參數1:customclass2;

customclass1(parameter1);

公共職能customclass1:

在customclass1構造

(參數1:customclass2) { ....

閃存抱怨說,當我使用的數據類型customclass 2在編譯類型不能被發現paramater。當我使用可變數據類型*或省略數據類型時(它無論如何默認爲*)都不會抱怨。我認爲這是因爲customclass2尚未構造,因此編譯器不可用。 或者,我沒有將customclass2的路徑添加到編譯器,但我相當肯定我已經排除了這一點。 有超過10,000行的代碼,整個事情工作得很好。我重寫只是爲了優化編譯器 - 嚴格的數據類型,錯誤處理等。如果我發現一種情況,繼承等可作爲一個選項,然後我會使用它,但它已被分爲類(至少在主要部分)。這僅僅是爲了我自己的安心,並保持嚴格的數據輸入策略,以便編譯器優化更高效地工作。 thnx

+0

其餘變量不起作用 - 其餘變量後面的參數必須是數組數據類型。 – James 2011-06-16 11:22:06

+1

我不確定我是否遵循你的問題,你可以發佈一些代碼? – grapefrukt 2011-06-16 12:04:39

+0

如果您發現問題是遺留代碼不符合oop範例,則應考慮重寫。 – TheDarkIn1978 2011-06-16 12:09:17

回答

1

我沒有將customclass2的路徑添加到編譯器,但我相當肯定我已經排除了這一點。

所以,如果你沒有在任何地方編寫類,編譯器可以做什麼?它當然會窒息。您必須編寫CustomClass類文件或只使用「thing:Object」或「thing:Asteriks」。當您使用「*」類類型時不會抱怨,因爲它可能是任何數組,字符串,以前聲明的類。但是,如果指定了不存在的內容,它將會窒息,而不管參數聲明的順序如何。

+0

我有我的自定義類在同一目錄中。我只是表示明確導入類沒有任何區別。我必須道歉,自從我在AS3中定期編程已經有8個多月了,我最近在Linux上一直是GTK ++。 – James 2011-06-17 22:43:01

+0

我認爲存在這個問題,因爲編譯器不知道傳入的參數類,因爲它沒有在聲明和編譯第一個類時編譯它。我認爲這是有道理的,因爲這個班級在後面的其他地方被確認爲有效類型,而且沒有投訴。我有點摸不着頭腦,因爲我更喜歡正確地輸入參數,而不是將其鍵入爲星號。 – James 2011-06-17 22:46:13

相關問題