KeyValuePair をシリアル化する必要がありましたが、ここで解決策を見つけました。
.NET にシリアル化可能なジェネリック キー/値ペア クラスはありますか?
だから私はその質問に対して受け入れられた答えを使用しました.必要なのはこのようなクラス/構造体を定義することだけです.
public class KeyValuePair<K,V>
{
public K Key {get;set;}
public V Value {get;set;}
}
これは機能しますが、同じ名前のジェネリック クラスが 2 つあります。上記のカスタム クラスとSystem.Collections.Generics
名前空間のカスタム クラス。
では、このようなコードがある場合、コンパイラはどのコードを使用するかをどのように認識しますか?
myList=new List<KeyValuePair<string, string>>();
一方には署名がKeyValuePair<K,V>
あり、もう一方には署名がKeyValuePair<TKey,TValue>
あるため、どちらも同じ数の型パラメーターを持ちます。
コードがエラーなしでコンパイルされるのはなぜですか?