2011-08-18 15 views
7

私はTuple<T1,T2>.Create<T1,T2>(T1 item1, T2 item2)と同様のメソッドを実装しようとしていますが、Tuple.Createがそれらを推論するのに対し、型パラメータを指定する必要があります。タプルはどうですか<T1,T2>。<T1,T2>(T1アイテム1、T2アイテム2)を作成しますか?

私はこの定義が正しいと思います。私は間違って何をしていますか?ここに私のコード:

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 }; 
    } 
} 

答えて

11

クラスのジェネリックでないバージョンを作成したいと思うでしょう。

public class KeyValuePair 
{ 
    public static KeyValuePair<K, V> Create<K, V>(K key, V value) 
    { 
     return new KeyValuePair<K, V>(key, value); 
    } 
} 
+0

KeyおよびValueプロパティは読み取り専用です。つまり、kvpは不変です。私は関連する編集をしました。 – nawfal

5

私はそれを考え出した。これは、Tuple<T1,T2>クラスではなく、Tupleクラスで静的メソッドとして定義されています。

+1

@Quintin - Thanks!私は処女の耳が存在していることを知らなかった。 –

+1

それはとても燃えた! =) –

関連する問題