目前正在使用TKey進行排序的雙向查找關聯泛型。在某些時候,我希望能有一個像下面的訪問:通用方法的有條件編譯
public class Assoc<TKey, TValue>
{
public TKey this[TValue value] { get; }
public TValue this[TKey value] { get; }
}
但很明顯,當TKEY的== TValue這將失敗。出於好奇,有沒有一個有條件的編譯語法來做到這一點:
public class Assoc<TKey, TValue>
{
[Condition(!(TKey is TValue))]
public TKey this[TValue value] { get; }
[Condition(!(TKey is TValue))]
public TValue this[TKey value] { get; }
public TKey Key(TValue value) { get; }
public TValue Value(TKey value) { get; }
}
什麼時候使用TKey == TValue類會有用? – casablanca 2012-08-17 01:40:41
'public TKey this [TValue value] {get; ''做?我不理解這個API的目的。 – 2012-08-17 01:54:07
@casablanca,你有沒有使用'Dictionary'?它看起來像傑克希望有一個非常類似於字典的東西,但通過鍵和值的聯想搜索。 –
2012-08-17 02:07:46