【问题标题】:Custom preprocessor directive in C# [closed]C# 中的自定义预处理器指令 [关闭]
【发布时间】:2016-12-03 19:54:34
【问题描述】:

有没有办法在 C# 中创建自定义预处理器指令来影响编译过程?如果没有对定义新指令的内置支持,您能否建议一种解决方法来模拟类似行为?

【问题讨论】:

  • 你是说你想要一个像#doSpecalStuff 这样的新指令,还是你的意思是像#if MY_DIRECTIVE 这样的东西,你想定义MY_DIRECTIVE
  • 不,没有那样的东西。如果不知道您想要做出什么样的行为改变,很难提出解决方法。
  • @scott-chamberlain,是的,你完全理解它。我实际上想创建一个新指令。
  • @NamiraJV 好的 - 你希望这个新指令做什么?
  • 所以你想要一些表示“给定这些参数,做这件事”的标记。为什么函数调用在这里不合适?

标签: c# .net


【解决方案1】:

不,你不能在 c# 中这样做。 Here 是所有指令的列表。

您可能还可以使用以下指令:

您可以像这样向处理器添加定义:

#define xx  

然后像这样检查它们

#if (xx)
    Console.WriteLine("xx defined");  
#else  
    Console.WriteLine("xx not defined");  
#endif

如果您正在使用 roslyn,请查看此 interesting article,但请谨慎操作。

或者看看这个SO Article,它向您展示了如何使用 roslyn 脚本 api 实现您的自定义语法。

【讨论】:

  • 这不是 OP 所追求的——据我所知,它们是在 custom 指令之后。
猜你喜欢
  • 2020-04-07
  • 2020-01-22
  • 1970-01-01
  • 2023-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多