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

VB.NET或C#中的内联函数和条件编译?,c#,vb.net,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\u some\u debug\u函数或call\u some\u final\u函数 当我谈到内联函数时,我指的是

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

当我谈到条件编译时,我指的是类似于C/C++的东西,您可以:

#ifdef DEBUG
    my_var = call_some_debug_function();
#else
    my_var = call_some_final_function();
#endif
在生成的编译代码中,只调用
call\u some\u debug\u函数
call\u some\u final\u函数

当我谈到内联函数时,我指的是C/C++宏:

#define sum(a, b) a + b
...
total = sum(a, b)
生成的编译代码是:

total = a + b

这些.NET语言支持这些构造吗?

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

:

:


据我所知,C#或VB中不支持宏。。。通常,内联由JIT编译器处理。

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

:

:


据我所知,C#或VB中不支持宏。。。通常,内联由JIT编译器处理。

是的,它可以工作,但更像:

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

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

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

下面是一个问题,回答了为什么C不支持宏:你可以在C和C++中对宏造成更多的破坏,C当然不允许定义像这样的Bug函数样式宏。但是内联优化并没有根本不同,机器代码的最终结果是一样的。这里有一个问题,回答为什么C++不支持宏:你可以在C和C++中对宏造成更大的破坏,C当然不允许定义像这样的BuGy函数样式宏。但是内联优化并没有本质上的不同,机器代码的最终结果是一样的。
#if DEBUG
    my_var = call_some_debug_function();
#else
    my_var = call_some_final_function();
#endif