2010-10-11 22 views
0

我想創建一個基於提供給外部類的類型的嵌套類。我需要內部類一些成員來擴展T是否有可能從外部類提供的泛型類型派生嵌套類?

TOuterClass<T:class> = class 
    type 
    TNestedClass = class(T) 
     MoreData:Integer; 
    end; 
end; 

編譯器說「沒有」,或更具體地[DCC錯誤] MyUnit.pas(20):E2021類類型所需class(T)

是否有可能實現我想要做的事情?

回答

6

不,這是不可能的。

+0

可惜,但好知道。謝謝。 – 2010-10-15 14:53:53

2

還沒有。它可能應該,但編譯器並沒有真正考慮通用約束的所有後果。您應該將其作爲功能請求添加到QC中。

0

沒有,但你可以在派生類中已經解決了T的類型:

TOuterClass<T:class> = class 
    //Data 
end; 

TDerived = class(TOuterClass<TObject>) 
    type 
    TNestedClass = class(TObject) 
     MoreData:Integer; 
    end; 
end;