2016-12-05 50 views
0

是否可以只允許某些特定的類實現iterface?如何限制c#中的接口實現

對於〔實施例:

System.Collections.Generic.Dictionary類有KeyCollection與密封類實現System.Collections.Generic.ICollection<TKey>以及System.Collections.ICollection,但是當我在看代碼的Visual Studio從元數據構建它表明KeyCollection只實現System.Collections.ICollection接口的方法。

如何限制相同?

enter image description here

簡單的例子: 我已經使用了相同的接口,但我所面臨的問題彙編。

enter image description here

+1

怎麼是你問的是什麼,如果任何人都可以實現'ICollection'或ICollection的''的一個例子嗎? – hvd

+0

如果你想限制實現的接口 - 在自己的組件(項目)的移動界面,使界面'internal',在同一程序中的公共類,你會在你的其他項目 – Fabio

+0

使用實現接口不,你不能,如何限制類沒有實現任何實現的接口。 –

回答

0

這是事實,但KeyCollection也沒有任何限制。 KeyCollection似乎正在使用ICollectionICollection<TKey>方法。實際上,它實現了所有的方法。 Beacuse ICollection<TKey>ICollection實現IEnumerable<T>, IEnumerable接口。

ICollection<T> : IEnumerable<T>, IEnumerable

ICollection : IEnumerable