5
A
回答
8
在IL中,這是可能的。在C#中:不。
您可以使用virtual
運行在該類型的構造函數之前A型方法,但它是鼓勵和風險。但是:
class Foo {
public Foo() {
Console.WriteLine("Foo ctor");
SomeMethod(); // BAD IDEA (calling a virtual method in a ctor)
}
protected virtual void SomeMethod() {}
}
class Bar : Foo {
protected override void SomeMethod() {
Console.WriteLine("SomeMethod in Bar");
}
public Bar() : base() { /* only to show call order */
Console.WriteLine("Bar ctor");
}
}
這是一個糟糕的主意,因爲你不能保證子類準備的方法調用。
0
你試圖完成什麼?也許你可以有一個從基類ctor調用的抽象方法?
+1
您覺得您需要這樣做的事實表明您的設計或思維存在一些缺陷。我會建議仔細考慮你嘗試這樣做的動機。 – NeilDurant 2010-07-23 17:58:20
+0
對,這就是爲什麼我問這裏的目標是什麼。 – 2010-07-24 00:55:42
相關問題
- 1. 如何讓父類構造函數在子構造函數之前運行? (PHP)
- 2. 基類構造函數在派生類構造函數之前真的調用
- 3. viewDidLoad在構造函數之前調用
- 4. 爲什麼在調用複製構造函數之前調用構造函數?
- 5. 父類的構造函數
- 6. Move構造函數調用基類移動構造函數
- 7. 從不同類的構造函數調用構造函數
- 8. Java:如何可以子類構造函數類中和父構造函數?
- 9. Java:如何調用子類構造函數內的超類構造函數?
- 10. 如何調用父類的構造從孩子的構造函數在C#
- 11. 構造函數中的調用基構造函數和其他構造函數
- 12. 子類構造函數 - 爲什麼必須爲子類構造函數存在默認構造函數?
- 13. NavigateTo()函數在構造函數之前被調用?
- 14. 無參數構造函數調用2參數構造函數
- 15. 如何在其他構造函數中調用構造函數?
- 16. 在java中調用繼承構造函數的構造函數
- 17. 隱式調用父構造函數
- 18. 父構造函數默認調用?
- 19. 調用父構造函數Java
- 20. 從參數化構造函數調用默認構造函數
- 21. 構造函數調用具有參數的構造函數
- 22. 調用派生類的構造函數在基類的構造函數之前執行
- 23. 類構造函數
- 24. 在調用超類的構造函數之前解析子類中的參數
- 25. 從另一個構造函數調用默認構造函數
- 26. 從構造函數調用構造函數
- 27. 有沒有在JAVA中執行超類的構造函數之前的子類的構造函數?
- 28. 如何使用在子構造函數中創建的對象構造父類
- 29. PHP:從父類的靜態方法調用子構造函數
- 30. 爲什麼在包含類的構造函數之前調用靜態成員的構造函數?
+1令人沮喪! – 2010-07-23 17:21:21