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

Ton*_*nyP 16 c# alias

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

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)