是否可以使用.net类型声明别名?在c#中如果是这样的话?
答案 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;