2012-07-27 31 views
0

在C#...聲明一個基類的方法,可以採取的參數,任意類型的兒童

我設計一個基類(不能使用構造函數這一點),我想強迫任何繼承類來實現一個方法來初始化它們各自的對象。我可以預料他們的初始化方法可能需要一個任意的數量和參數類型。

我怎麼會在基礎這一聲明抽象方法,使孩子們能夠實現它的任何參數化的變化?如果這是不可能的,你能否提出一個替代方案?謝謝。

更新的詳細信息:基類應該是抽象的,我需要一個方法作爲一個構造函數(但我不能用一個構造函數來做到這一點)。子類需要一種方法來初始化本身,我希望能強制執行與(抽象?)的方法,我自己

+0

需要派生類來實現一個且只有這一種方法? – Rafal 2012-07-27 09:42:16

+0

理想的是,如果事實證明更好,沒有量的限制則沒有;-) – user1229895 2012-07-27 09:47:39

+1

你爲什麼要這樣?誰會調用這種方法?只有實現它的對象還是你希望你的基類從它的構造函數中調用它?如果只有實現對象正在調用它,從基類強制執行一些具有名稱的方法(這不保證它已被執行)是很奇怪的。如果你想從基類中調用它,該基類需要一個預先定義的方法和它所知道的參數(或者一個對象[])。添加「問題,什麼是你試圖解決」得到好的答案 – Eddy 2012-07-27 09:56:47

回答

2

我認爲這是可能嘗試在你的基類的代碼

public abstract void Test(params object[] list); 

現在它會強制在子類中聲明方法。

希望得到這個幫助。

+0

感謝您的建議,這是一個可行的選擇。我希望有一些事情不會強迫孩子班級整個列表。 – user1229895 2012-07-27 10:09:35

0

此外,還可以使用new Modifier隱藏明確的同名方法,字段,...派生類的

.NET Framework 4.0中提供了可選的參數和名稱參數來應對不同類型的參數Named and Optional Arguements

+0

我不認爲會這樣做,但謝謝你的回覆! =) – user1229895 2012-07-27 10:10:09

相關問題