这段c++代码片段在c#中的等价语法是什么?

本文关键字:语法 是什么 代码 c++ 片段 这段 | 更新日期: 2023-09-27 18:16:11

因为我不知道这种类型的结构甚至被称为什么,我不知道如何开始搜索答案,所以我直接问它:c#语法等效于c++中的这段代码是什么?

#define DoExit { '
    if (pDialog) delete pDialog; '
    if (lib) FreeLibrary(lib); '
    if (MadeNew) delete pRS; '
    return retval;}

这是从类方法中获取的,所以它是稍后调用的函数的内联声明。事实上,这里有一个使用它的例子:

if (pRS->GetSize() == 0) DoExit

注意缺少()或终止分号。

我的第一个猜测是某种内联委托结构,但我也不是很精通这些,所以这只是一个猜测。

所以,所有的c++大师们,努力去做吧!

这段c++代码片段在c#中的等价语法是什么?

这段代码在c#中相当于

;

因为:

delete something

是由垃圾收集器处理的,所以不需要处理它。库(例如,程序集是由。net框架管理的,所以严格来说,你不管理程序集的加载和卸载,除非你正在加载非托管的库)你能找到一个等价的部分是FreeLibrary如果你在其他地方做LoadLibrary P/Invoke。在这种情况下,请看这里:

这是c++中的一个宏-你基本上只需要添加代码,所以"实际"代码将是:

if (pRS->GetSize() == 0)
{ 
    if (pDialog) delete pDialog;
    if (lib) FreeLibrary(lib); 
    if (MadeNew) delete pRS; 
    return retval;
}

在c#中没有办法直接进行等效的操作。您需要手动展开代码,然后根据需要移植展开的代码,或者将宏转换为方法并调用它。

您所遇到的称为宏。c#中没有相应的