2009-01-11 75 views
36

如何在C#中执行以下操作?写这段代码的第一行的正确方法是什么?如何在C#中为泛型类创建别名?

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

class C { KVP<int, string> x; } 
+1

正如Eric Lippert所说[这里](http://stackoverflow.com/q/3720222/303290)“这是一个偶尔需要的功能。”它尚未投入生产。 – mbx 2013-07-04 13:35:00

回答

39

你基本上不能。您只能使用固定的别名,如:

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

class C { Foo x; } 
+7

drat,这是不幸的 – yoyo 2011-12-17 01:32:00

1

在某些情况下,你可以继承去:

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

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

虽然不是你的具体情况,如KeyValuePair是:-(密封