相当直截了当的问题,是否可以编写C#预处理器指令,以便我可以执行以下操作? :
ClassZ<A, B, C, D, E, F>
到
ClassZ<T>
,其中
T = <A, B, C, D, E, F>
答案 0 :(得分:6)
这有点可能。
你可以写
using ClassZT = ClassZ<A, B, C, D, E, F>;
请注意,除非您将其放在namespace
块中,否则您需要完全限定每个名称。
但是,您无法按照您要求的方式设置参数。
答案 1 :(得分:3)
没有。 C##define
不允许进行宏或文本替换。它只能用于定义令牌以便在#if
指令中使用。
答案 2 :(得分:1)
如果您打算自己实现预处理器,那么没有理由不能......但C#(至少是标准的Microsoft版本)没有像C或C ++这样的预处理器宏