簡體   English   中英

如何限制C#中的接口實現

[英]How to restrict the interface implementation in c#

是否可以僅允許某些特定的類來實現Iterface?

例如:

System.Collections.Generic.Dictionary類中具有KeyCollection密封的類,其中包含已實現的System.Collections.Generic.ICollection<TKey>以及System.Collections.ICollection但是當我查看Visual Studio從元數據構建的代碼時,它表明KeyCollection僅實現了System.Collections.ICollection接口方法。

如何限制相同?

在此處輸入圖片說明

簡單的例子:我使用了相同的接口,但是遇到編譯問題。

在此處輸入圖片說明

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

ICollection<T> : IEnumerable<T>, IEnumerable

ICollection : IEnumerable

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM