有没有办法在c#
中创建宏例如:
string checkString =“'bob'=='bobthebuilder'”(这将是动态的)
if(@@ checkString) // ......... 其他 //.........
由于
答案 0 :(得分:1)
不,C#没有宏。您可以在委托中捕获您的逻辑并在多个位置应用该委托,可能......会有帮助吗?
如果您可以描述您尝试解决的问题,而不是您认为自己喜欢的解决方案,我们可能会提供更多帮助。
答案 1 :(得分:1)
T4似乎越来越受到.NET工作的青睐。这不是你要求的,但在某些情况下它可能是非常有益的(或者它可能只是暗示错误的路径)。
在大多数情况下,尤其是使用泛型,我不希望在C#(或Scala)中使用“模板”或“宏”。在上面的示例中,您只需使用:
bool sameStuff = "'bob' == 'bobthebuilder'";
...
if (sameStuff) {
...
}
更复杂的案例通常可以通过重构方法或使用匿名函数来处理。
此外,属性(虽然是一种完全不同的方法)完善了模板的许多“传统”用法。
答案 2 :(得分:1)
如上所述,不,但还有许多其他方法:
#if
答案 3 :(得分:0)
简短回答:不。
答案很长:您可以在C / C ++编译器的预处理器周围编写一个包装器。
除#region / #endregion之外,大多数语法都会被接受。您可以在处理之前使用#pragma为前缀添加前缀,然后删除#pragma部分。