using System; public struct KeyValuePair { public K key; public V value; public KeyValuePair(K k, V v) { key = k; value = v; } public KeyValuePair(K k) { key = k; value = default(V); } } public class Collection { public readonly T Item; public Collection (T item) { this.Item = item; } public void Find (ref T item) { item = Item; } } class X { public static int Main () { KeyValuePair p = new KeyValuePair (3); KeyValuePair q = new KeyValuePair (5, 9); Collection> c = new Collection> (q); c.Find (ref p); if (p.key != 5) return 1; if (p.value != 9) return 2; return 0; } }