通常,給定類A,派生類DerivedFromA和A的實例,是否有方法從該實例構造DerivedFromA?假設我們說DerivedFromA簡單地覆蓋了A的一個或多個方法或屬性。比方說,我有一個帶有CreateA()方法的Container類,它返回A的一個實例,而且我不能或不願意'您想重寫或以其他方式混淆該Container類。我想要做的是取出由Container.CreateA()返回的實例,並將其傳遞給DerivedFromA(A instanceOfA)構造函數,並將結果對象視爲instanceOfA,並使用所有instanceOfA的方法,屬性和數據,除了我被覆蓋的那些。從父類的實例創建派生類的實例
順便說一句,有問題的語言是C#,它有所作爲。
謝謝。
我不認爲你可以直接做到這一點。但是,您可能會使用類似[Castle DynamicProxy](http://www.castleproject.org/)來修改行爲 – Rob
每隔一段時間(當我試圖寫一些複雜的東西時,幸運的是不是經常)我試圖讓我的頭看起來像一個簡單而優雅的概念。它似乎應該是一個委託或包裝或適配器模式,但我認爲你總是遇到阻礙你的事情。 (就像你不能重寫的方法或其他東西)。你可能最終會「裝飾」比你喜歡的更多的實例,但我想也許C#中最接近的東西是使用擴展方法... – mwardm