VB.NET或C#中的内联函数和条件编译?

时间:2016-09-22 16:09:27

标签: c# vb.net

VisualBasic.NET或C#是否支持条件编译?内联函数(宏)?

当我谈到条件编译时,我的意思是像C / C ++这样的地方:

#ifdef DEBUG
    my_var = call_some_debug_function();
#else
    my_var = call_some_final_function();
#endif

在生成的编译代码中,只有对call_some_debug_functioncall_some_final_function的调用。

当我谈论内联函数时,我的意思是像C / C ++宏:

#define sum(a, b) a + b
...
total = sum(a, b)

结果编译的代码是:

total = a + b

这些构造是否都受这些.NET语言的支持?

2 个答案:

答案 0 :(得分:4)

C#和VB都支持条件编译:

C#

#if DEBUG
   Foo();
#else
   Bar();
#endif

VB

#If DEBUG Then
   Foo
#Else
   Bar
#End If

C#或VB不支持宏,只要我知道......通常内联留给JIT编译器。

答案 1 :(得分:1)

是的它有效,但它更像是:

#if DEBUG
    my_var = call_some_debug_function();
#else
    my_var = call_some_final_function();
#endif