2011-06-28 16 views
3

在我的C#代碼中,我想要一個CustomIdentity類繼承System.MarshalByRefObjectSystem.Security.Principal.GenericIndentity類。當我真的需要從兩個類繼承時如何處理CS1721?

但是,當我嘗試寫這樣的繼承C#將反對CS1721 error說我不能直接從多個類繼承。

現在在這種情況下,很容易克服這一點 - 我將繼承IIdentity,通過該成員變量添加GenericIdentity成員變量並重新實現所有IIdentity方法。

但是,如果我想從兩個類中繼承一大套方法,我該怎麼辦?

+2

唯一的方法是使用接口進行封裝,就像你說過的那樣。 – leppie

回答

3

你不知道。你不能。

這在C#或.NET中不受支持。

您可以使用多個接口實現,並最多單(非object)繼承。在大多數情況下,即使是單一繼承也被大量使用; p

要吸收這些方法,您必須使用某種封裝。爲了完整性,擴展方法也爲提供了在類型之間共享方法的方法。

+0

小例請 – YumYumYum

+0

@YumYumYum其中哪一點,具體是? –

+0

如何「使用多接口實現」公共部分類AppDelegate:UIApplicationDelegate,UIResponder {' – YumYumYum

2

不能從多個類繼承,因爲你知道......真正唯一的方法就是按照你所說的使用接口。或者將編程語言改爲支持多繼承的編程語言,但我相信這無濟於事!

相關問題