是否可以使用.net类型声明别名?

时间:2010-02-20 15:21:09

标签: c# alias

是否可以使用.net类型声明别名?在c#中如果是这样的话?

5 个答案:

答案 0 :(得分:34)

正如其他人所说,使用“using alias = type;” using指令的形式。对此有所了解:

1)它必须是文件或命名空间中的第一件事。 (当然,除非你有 extern别名指令;否则它们会在using指令之前使用。)

2)别名不是真正的类型。很多人都希望看到:

using PopsicleCount=System.Int32;
using GiraffeCount=System.Int32;
...
PopsicleCount p = 123;
GiraffeCount g = p; // ERROR, can't convert a count of giraffes into a count of popsicles

但我们不支持该功能。这是一个真正的别名;我们只是在看到它时用alising类型替换别名标识符; p和g都是int类型。

3)别名仅适用于它出现的文件或名称空间声明。如果要在程序的每个文件中使用别名,则必须将其写入程序中的每个文件中。

4)别名不能在别名名称侧进行参数化,尽管它们可以是类型侧的封闭泛型类型。也就是说,这是合法的:

using GiraffeList = System.Collections.Generic.List<Giraffe>;

但这不是:

using Frobtionary<T> = System.Collections.Generic.Dictionary<Frob, T>;

答案 1 :(得分:21)

例如:

using MatchBuilderFactoryFunc = System.Func<
    IndexerBase.RequestMatching.RequestFreeTextAnalyzeParameter,
    System.Collections.Generic.IEnumerable<
        IndexerBase.RequestMatching.IMatchBuilder>>;

毕竟用它作为简单类型:

MatchBuilderFactoryFunc f = ...

答案 2 :(得分:4)

using XDoc = System.Xml.Linq.XDocument;

但是,它只能用于编译一个C#文件。您无法导出此别名。

答案 3 :(得分:1)

是。使用using指令。

如果您使用术语“c#alias”进行搜索,您也可以轻松找到答案。

答案 4 :(得分:1)

是的,using可以做到

using q = System.Int32;