我有一個面向對象的數據庫的方法,它根據它們的類型創建表。傳遞一個類型列表,將類型限制爲從一個特定父類派生的類,在c#中
我想能夠發送一個類型列表來創建,但我希望將它們限制爲僅從特定基類(MyBase)派生的類。
有沒有辦法可以在方法簽名中要求這個? 而不是
CreateTables(IList<Type> tables)
我可以做的東西,將
CreateTables(IList<TypeWithBaseTypeMyBase> tables)
我知道我可以檢查基類送過來每種類型的,但如果可能的話,我想這在編譯時驗證。
有什麼建議嗎?
有主叫方不要求有實例的類。爲了使用該類型而實例化它似乎很浪費。 – rediVider 2010-08-13 21:04:33
我不知道我明白。如果您將IList傳遞給某個方法,那麼我假設該列表的元素將實例化SomeType的類。我只是說,只要所有派生類型都繼承自它,就可以使用BaseType作爲IList的類型。 –
dcp
2010-08-13 22:01:40
我沒有得到對象列表。我收到了一個類型列表。 – rediVider 2010-10-07 23:57:45