长泛型集合类型的速记声明

时间:2010-09-05 12:24:19

标签: c# generics collections

我查看了很多示例c#泛型代码,并记得看到一个语法声明技巧,为长泛型字典类型创建了另一种简写类型。混合使用C#和C ++就像:

typedef MyIndex as Dictionary< MyKey, MyClass>;

然后允许以下用法:

class Foo
{
    MyIndex _classCache = new MyIndex();
}

有人可以提醒我哪个C#lanaguage功能支持这个吗?

3 个答案:

答案 0 :(得分:9)

这就是using directive的另一种形式,用于定义别名。

using MyClass = System.Collections.Generic.Dictionary<string, int>;

namespace MyClassExample
{
    class Program
    {
        static void Main(string[] args)
        {
            var instanceOfDictionaryStringInt = new MyClass();
        }
    }
}

答案 1 :(得分:4)

using MyIndex = Dictionary<MyKey, MyClass>;

答案 2 :(得分:2)

这是一个如何完成的例子

using Test = System.Collections.Generic.Dictionary<int, string>;

namespace TestConsole
{
    class Program
    {
        static void Main(string[] args)
        {
            Test myDictionary = new Test();
            myDictionary.Add(1, "One");
        }

    }
}