在C#12(.NET 8)之后,所有类型都可以别名:

using A = int;
using B = string;
using C = Dictionary<int, string>;

但是,它不能写为

using A = int;
using B = string;
using C = Dictionary<A, B>;

这是一个错误,还是仅仅是一个功能? 有什么解决办法吗?

推荐答案

documentation of the compiler Error CS0246人解释说

一个using别名指令不使用 解析类型的源代码文件.

因此,在声明新别名时,同一源代码文件中定义的其他别名不可见.

Csharp相关问答推荐

为什么使用DXGI输出复制和Direct 3D时捕获的图像数据全为零?

注册通用工厂的C# Dep注入

什么是通过反射创建类的泛型接口方法的正确方法?

如何阻止注释被包含在C#release build. exe中

实体核心框架--HasColumnType和HasPrecision有什么不同?

如何删除文件的基础上嵌入的时间戳嵌入文件名

与C#中的Zip列表并行

自动映射程序在GroupBy之后使用项目

ASP.NET Core AutoMapper:如何解决错误 CS0121调用在以下方法或属性之间不明确

如何将MongoDB序列化程序设置为内部对象属性

UWP应用程序try 将打包的本机.exe文件加载为C#程序集

net中从位图获取坐标和绘制折线

如何从非异步任务中正确返回TypeResult

用于ASP.NET核心的最小扩展坞

为什么在使用JsonDerivedType序列化泛型时缺少$type?

从MudAutoComplete打开对话框,列表仍然可见

C#-如何将int引用获取到byte[]

如何对正方形格线进行对角分组

为什么Visual Studio 2022建议IDE0251将我的方法设置为只读?

分别切换用于读取和写入的EF核心日志(log)