[英]Enforcing Different Type Parameters
早上好,下午或晚上,
例如,在實現ICollection<KeyValuePair<TKey, TValue>>
或IDictionary<TKey, TValue>
,有什么方法可以將TKey
和TValue
強制為不同類型? 我知道每當typeof(TKey) == typeof(TValue)
,我都可以在構造函數中引發異常,但這似乎既不是最優雅也不是最正確的解決方案...
非常感謝你。
我懷疑還有什么更好的。 在.net中,您僅限於一小組內置約束,而這不在其中。
您可以使用Code Contracts使條件明確,同時將檢查保留在構造函數中。
public class MyDictionary : IDictionary<TKey, TValue>
{
public MyDictionary()
{
Contract.Requires(typeof(TKey) != typeof(TValue));
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.