在 C# 中,我有没有办法创建一个速记表达式来定义泛型(或其他类型)
本文关键字:一个 表达式 定义 类型 其他 泛型 有没有 创建 | 更新日期: 2023-09-27 18:22:14
语法T?
是Nullable<T>
的简写。 有没有办法我可以做类似的事情,但使用我自己的自定义角色/等?
就像为MyGeneric<T>
制作T!
速记一样.
从
某种意义上说,你可以。您无法使用 !
,因为它不是标识符的有效字符,但您可以使用任何其他有效字符。话虽如此,这是非常有限的。如果您知道要使用的基类型,则可以执行以下操作:
using @c = System.Collections.Generic.List<B>;
其中B
是基类。如果你想要一个更通用的版本,你可以这样做:
using @c = System.Collections.Generic.List<object>;
您现在可以像使用List<B>
或"列表"一样使用@c
。如:
@c a = new @c;
a.Add(new B());
就像我说的,它是有限的,不实用的,但它是半可能的。
除非您使用 Roslyn,否则无法执行此操作。我相信最接近你想要的东西(如果我错了,请纠正我(是这样的:
using YourAlias = System.Collections.Generic.Dictionary<string, string>; // or whatever type you want
并使用它:
var dict = new YourAlias();