Eri*_*ert 35
正如其他人所说,使用"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
Run Code Online (Sandbox Code Playgroud)
但我们不支持该功能.这是一个真正的别名; 我们只是在看到它时用alising类型替换别名标识符; p和g都是int类型.
3)别名仅适用于它出现的文件或名称空间声明.如果要在程序的每个文件中使用别名,则必须将其写入程序中的每个文件中.
4)别名不能在别名名称侧进行参数化,尽管它们可以是类型侧的封闭泛型类型.也就是说,这是合法的:
using GiraffeList = System.Collections.Generic.List<Giraffe>;
Run Code Online (Sandbox Code Playgroud)
但这不是:
using Frobtionary<T> = System.Collections.Generic.Dictionary<Frob, T>;
Run Code Online (Sandbox Code Playgroud)
Dew*_*wfy 21
例如:
using MatchBuilderFactoryFunc = System.Func<
IndexerBase.RequestMatching.RequestFreeTextAnalyzeParameter,
System.Collections.Generic.IEnumerable<
IndexerBase.RequestMatching.IMatchBuilder>>;
Run Code Online (Sandbox Code Playgroud)
毕竟使用它作为简单类型:
MatchBuilderFactoryFunc f = ...
Run Code Online (Sandbox Code Playgroud)