Как реализуется Tuple <T1, T2> .Create <T1, T2> (T1 item1, T2 item2)? - PullRequest
7 голосов
/ 19 августа 2011

Я пытаюсь реализовать метод, аналогичный Tuple<T1,T2>.Create<T1,T2>(T1 item1, T2 item2), но мне все еще нужно указать параметры типа, тогда как Tuple.Create выводит их.

Я думаю, что определение правильное. Что я делаю неправильно? Вот мой код:

public class KeyValuePair<K, V>
{
    public K Key { get; set; }       

    public V Value { get; set; }

    public static KeyValuePair<K, V> Create<K, V>(K key, V value)
    {
        return new KeyValuePair<K, V> { Key = key, Value = value };
    }
}

Ответы [ 2 ]

11 голосов
/ 19 августа 2011

Вы захотите создать неуниверсальную версию класса.

public class KeyValuePair
{
    public static KeyValuePair<K, V> Create<K, V>(K key, V value)
    {
        return new KeyValuePair<K, V>(key, value);
    }
}
5 голосов
/ 19 августа 2011

Я понял это. Он не определен как статический метод в классе Tuple<T1,T2>, но в классе Tuple.

...