簡體   English   中英

強制執行不同類型的參數

[英]Enforcing Different Type Parameters

早上好,下午或晚上,

例如,在實現ICollection<KeyValuePair<TKey, TValue>>IDictionary<TKey, TValue> ,有什么方法可以將TKeyTValue強制為不同類型? 我知道每當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.

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