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. 在父構造函數之前調用child方法在PHP中構造函數
- 3. 父/子類構造函數
- 4. 基類構造函數在派生類構造函數之前真的調用
- 5. 如果子類不定義構造函數,是否調用父構造函數?
- 6. viewDidLoad在構造函數之前調用
- 7. 爲什麼在調用複製構造函數之前調用構造函數?
- 8. 在構造函數中調用類成員的構造函數
- 9. 在構造函數中調用不同類的構造函數?
- 10. 父類的構造函數
- 11. Move構造函數調用基類移動構造函數
- 12. 從不同類的構造函數調用構造函數
- 13. Java:如何可以子類構造函數類中和父構造函數?
- 14. 從grandchild類調用超類構造函數,調用父類或祖父類構造函數?
- 15. Java:如何調用子類構造函數內的超類構造函數?
- 16. 如何調用父類的構造從孩子的構造函數在C#
- 17. 構造函數中的調用基構造函數和其他構造函數
- 18. 子類構造函數 - 爲什麼必須爲子類構造函數存在默認構造函數?
- 19. 從調用子類父類的構造函數在python
- 20. 子類的構造函數
- 21. NavigateTo()函數在構造函數之前被調用?
- 22. 在構造函數之前調用成員函數
- 23. 從基類構造函數訪問子構造函數
- 24. 無參數構造函數調用2參數構造函數
- 25. 通過子類構造函數隱式調用默認構造函數
- 26. 在java中調用繼承構造函數的構造函數
- 27. 如何在其他構造函數中調用構造函數?
- 28. 在構造函數中調用另一個構造函數
- 29. 初始化主構造函數中的子類 - 主構造函數體與子類構造函數體
- 30. 在子類中調用父構造函數
+1令人沮喪! – 2010-07-23 17:21:21