c# - 此 C++ 代码片段在 C# 中的等效语法是什么?

标签 c# c++

因为我不知道这种类型的构造被称为什么,所以我不知道如何开始寻找答案,所以我直接询问:与 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/

相关文章:

C# - 从整数位掩码构造信号 Vector<T>

c# - 简化嵌套的 IF 语句

c# - 逆向工程dll并直接重新上传到服务器

c++ - 如何在循环中更改 int 变量,如果可以,是否有更有效的方法?

c++ - 如何在不破坏现有代码的情况下向函数添加输出参数?

c++ - 如何检查字符编码是否为 ASCII?

c++ - 在 constexpr 分支中使用枚举类值

c# - WinApp 窗体在 Load 事件期间加载过多数据

c# - 确定类型是否是泛型类型的子类

c++ - clang 3.0 + libc++ 中的 std::async 不起作用?