预处理器定义

时间:2010-11-29 15:12:49

标签: c# generics c-preprocessor

相当直截了当的问题,是否可以编写C#预处理器指令,以便我可以执行以下操作? :

ClassZ<A, B, C, D, E, F>

ClassZ<T>

,其中

T = <A, B, C, D, E, F>

3 个答案:

答案 0 :(得分:6)

这有点可能。

你可以写

using ClassZT = ClassZ<A, B, C, D, E, F>;

请注意,除非您将其放在namespace块中,否则您需要完全限定每个名称。

但是,您无法按照您要求的方式设置参数。

答案 1 :(得分:3)

没有。 C##define不允许进行宏或文本替换。它只能用于定义令牌以便在#if指令中使用。

答案 2 :(得分:1)

如果您打算自己实现预处理器,那么没有理由不能......但C#(至少是标准的Microsoft版本)没有像C或C ++这样的预处理器宏