如何在托管 C++ 中编写以下 C# 代码
void Foo()
{
using (SqlConnection con = new SqlConnection("connectionStringGoesHere"))
{
//do stuff
}
}
澄清:
对于托管对象。
请您参考如下方法:
假设您指的是 C++/CLI(不是旧的 Managed C++),以下是您的选择:
(1) 使用自动/基于堆栈的对象模拟 using-Block:
{
SqlConnection conn(connectionString);
}
这将在下一个封闭块结束时调用“conn”对象的析构函数。这是封闭函数,还是您手动添加到限制范围的块都无关紧要。
(2) 显式调用“Dispose”,即销毁对象:
SqlConnection^ conn = nullptr;
try
{
conn = gcnew SqlConnection(conntectionString);
}
finally
{
if (conn != nullptr)
delete conn;
}
第一个将是“使用”的直接替代品。第二个是一个选项,通常你不需要这样做,除非你有选择地将引用传递给其他地方。