C# 3.0 创建宏&x27;C中的s#

C# 3.0 创建宏&x27;C中的s#,c#-3.0,C# 3.0,有没有办法用c语言创建宏# 例: string checkString=“'bob'=='bobthebuilder'”(这将是动态的) 如果(@@checkString) //......... 其他的 // 谢谢不,C#没有宏。您可以在一个委托中捕获您的逻辑,并在多个位置应用该委托,可能。。。那会有帮助吗 如果您能描述您试图解决的问题,而不是您认为需要的解决方案,我们可能会提供更多帮助。简短回答:不 详细回答:您可以围绕C/C++编译器的预处理器编写一个包装器 除了#region/#endr

有没有办法用c语言创建宏#

例:

string checkString=“'bob'=='bobthebuilder'”(这将是动态的)

如果(@@checkString) //......... 其他的 //

谢谢

不,C#没有宏。您可以在一个委托中捕获您的逻辑,并在多个位置应用该委托,可能。。。那会有帮助吗

如果您能描述您试图解决的问题,而不是您认为需要的解决方案,我们可能会提供更多帮助。

简短回答:不

详细回答:您可以围绕C/C++编译器的预处理器编写一个包装器

除了#region/#endregion之外,大多数语法都可以接受。您只需在处理前在这些文件前加上#pragma前缀,然后删除#pragma部分。

近来.NET工作似乎越来越受欢迎。这并不完全是你所要求的,但在某些情况下,这可能是非常有益的(或者它可能只是一个错误路径的提示)

在大多数情况下,特别是对于泛型,我不希望在C#(或Scala)中使用“模板”或“宏”。在上面的示例中,您可以简单地使用:

bool sameStuff = "'bob' == 'bobthebuilder'";
...
if (sameStuff) {
  ...
}
更复杂的情况通常可以通过重构方法或使用匿名函数来处理


此外,属性(虽然是一种完全不同的方法)为模板的许多“传统”使用提供了一个完整的案例。

如前所述,没有,但还有许多其他方法:

  • 如果
  • 通过T4或其他方式模板化(我们使用Ned Batcheld的端口(已提及)
  • 通过以下方式进行面向方面编程
  • 正如乔恩所说,有很多方法;最好准确地描述你想做什么