因此,我使用基類DisplayObject
設置了此係統。 它有一個Render
方法和其他DisplayObjects
的列表,因爲它是孩子。它還包含有關各種矩陣轉換的數據,但我不包含有關實際圖形的數據。這就是爲什麼Render
方法是虛擬的。在虛擬方法的所有覆蓋之後執行代碼
然後我有2個班。 ColoredShape
和TexturedShape
各自從DisplayObject
繼承和重寫Render
方法用一個新方法開始
base.Render();
,然後做繪圖代碼。
我現在想是調用該對象的所有孩子的Render
後的渲染父已完成。所以這是我的問題。如果我做
foreach (var child in Children) child.Render();
在DisplayObject
類的Render
方法結束的覆蓋是之前它會被執行,因爲它是base.Render()
通話的一部分,如果我把這些代碼在子類中,而不是,單獨的DisplayObject
就會失去該功能,並強制所有將來從其繼承的子類手動實現該功能。