在c#中是否有等效的typedef?

时间:2011-05-18 17:53:43

标签: c# generics typedef

之类的东西
typedef Dictionary<string, string> mydict;

我发誓我已经看过但却找不到它

5 个答案:

答案 0 :(得分:19)

using MyDict = Dictionary<String, String>就像定义一个将被编译器替换的符号。

答案 1 :(得分:5)

排序。

using IntList = System.Collections.Generic.List<int>;

http://arbel.net/2004/07/07/the-hidden-c-typedef/

一个问题是没有办法#include定义。

答案 2 :(得分:2)

使用继承:

公共类DoubleNameValueCollection:Dictionary&lt; string,NameValueCollection&gt; {}

然后使用它就像是typedef:

NameValueCollection values = new NameValueCollection();
values.Add( "value1", "value2" );
DoubleNameValueCollection dblNameCol = new DoubleNameValueCollection();
dblNameCol.Add( "key1", values );

或者如果你想混淆他人:

DoubleNameValueCollection dblNameCol = new DoubleNameValueCollection
    {
        { "key1", new NameValueCollection 
            {
                { "value1", "value2" }
    }}};   

答案 3 :(得分:0)

C#中没有等效的typedef,但你可以使用'using'作为别名。

答案 4 :(得分:0)

有委托,用于定义方法参数的类型

using BlaBla = Full.Name.Space.Yada.Yada;

但是,using语句仅在当前文件中有效。