Comment puis-je créer un alias pour une classe générique en C#?

Comment puis-je faire ce qui suit en C#? Quelle est la bonne façon d'écrire la première ligne de cet extrait de code?

using KVP<K, V> = System.Collections.Generic.KeyValuePair<K, V>;

class C { KVP<int, string> x; }
36
demandé sur Hosam Aly 2009-01-11 23:49:10

2 réponses

Vous ne pouvez pas, fondamentalement. Vous ne pouvez utiliser que des alias fixes, tels que:

using Foo = System.Collections.Generic.KeyValuePair<int, string>;

class C { Foo x; }
39
répondu Marc Gravell 2009-01-11 20:58:54

Dans certains cas, vous pouvez aller avec l'héritage:

public class MyList<T1, T2> : List<Tuple<IEnumerable<HashSet<T1>>, IComparable<T2>>> { }

public void Meth()
{
    var x = new MyList<int, bool>();
}

Mais pas dans votre cas particulier, car KeyValuePair est scellé: - (

1
répondu Tsayper 2016-01-31 10:22:13