因为我不知道这种类型的构造被称为什么,所以我不知道如何开始寻找答案,所以我直接询问:与 C++ 中的这段代码等效的 C# 语法是什么?
#define DoExit { \
if (pDialog) delete pDialog; \
if (lib) FreeLibrary(lib); \
if (MadeNew) delete pRS; \
return retval;}
这是从类方法中获取的,因此它是稍后调用的函数的内联声明。事实上,这里有一个使用它的示例:
if (pRS->GetSize() == 0) DoExit
请注意缺少 ()
或终止分号。
我的第一个猜测是某种内联委托(delegate)构造,但我也不熟悉这些,所以这只是一个猜测。
所以,所有 C++ 专家都来吧!
最佳答案
此代码在 C# 中的等效项是
;
因为:
delete something
是由垃圾收集器完成的,所以不需要这样做。
库(即程序集由.NET框架管理,因此严格来说,您不管理程序集的加载卸载,除非您正在加载非托管库)
如果您在其他地方执行了 LoadLibrary
P/Invoke
,那么您可以找到等效项的单个部分是 FreeLibrary
。在这种情况下,请看这里:FreeLibrary .
关于c# - 此 C++ 代码片段在 C# 中的等效语法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16822544/