VB.NET或C#中的内联函数和条件编译?
VisualBasic.NET或C#支持条件编译吗?和内联函数(宏) 当我谈到条件编译时,我指的是类似于C/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函数 当我谈到内联函数时,我指的是
#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