2010-09-05 74 views
3

我已经看过很多示例c#泛型代码,并且记得看到一个为长泛型字典类型创建替代速记类型的语法声明技巧。混合使用C#和C++是一样的东西:长泛型集合类型的速记声明

typedef MyIndex as Dictionary< MyKey, MyClass>; 

这然后允许以下用法:

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

可有人提醒我这C#lanaguage功能支持呢?

+0

哇一个例子,这是我只是不会做。出于某种原因,C#没有宏。 – 2010-09-05 13:32:28

回答

9

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

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

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

Thankyou Rob等人。下次我接受采访时,我会知道它被称为使用别名。现在回答我的代码。 – camelCase 2010-09-05 17:05:08

+0

忘了说我认为别名(使用)应该在应用程序命名空间区域内声明。 – camelCase 2010-09-05 17:09:47

4
using MyIndex = Dictionary<MyKey, MyClass>; 
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"); 
     } 

    } 
}