0
我想知道是否有一種方法可以傳入強制爲某種基本類型的類型。例如,對於我的遊戲引擎,我有一個屬性列表(可控,rigidBody等)。我有一個addAttribute參數,它需要一個新的對象。不過,我想也有一個重載類型,我可以從中創建一個新對象。因此,例如從某個抽象繼承的類型參數
public void addAttribut(Type attribute)
我想也許是實現LINQ的東西?我已經試過,但它看起來像「其中」可仿製藥的前提下使用:
public void addAttribute(Type attribute) where attribute : Attribute
將是函數的簽名。我相信Unity會這樣做;然而,它可能是它可以通過Mono來做到這一點。
我總是可以拋出一個異常,如果它不是正確的基類型。不過,我想知道是否有辦法阻止程序員在錯誤的時間一起傳遞。
任何想法?任何幫助是極大的讚賞!
哈!現在完美的我記得Unity如何做到這一點(在相當長一段時間內沒有使用它) –
對於任何尋找答案的人來說,這將一起工作你的函數public void addAttribute()where T:Attribute,new ),因此你現在可以調用addAttribute(new T()); –
@SergueiFedorov:您不清楚您是否想使用無參數構造函數創建實例;例如,您可能需要其他構造函數。我會編輯我的答案來澄清。 –