如何在Managed C++中编写以下C#代码
void Foo() { using (SqlConnection con = new SqlConnection("connectionStringGoesHere")) { //do stuff } }
Clarificaton: 对于托管对象.
假设您的意思是C++/CLI(不是旧的托管C++),您可以选择以下选项:
(1)使用自动/基于堆栈的对象模仿使用块:
{ SqlConnection conn(connectionString); }
当下一个封闭块结束时,这将调用"conn"对象的析构函数.无论这是封闭功能,还是手动添加以限制范围的块都无关紧要.
(2)明确调用"Dispose",即破坏对象:
SqlConnection^ conn = nullptr; try { conn = gcnew SqlConnection(conntectionString); } finally { if (conn != nullptr) delete conn; }
第一个是"使用"的直接替代品.第二个是一个选项,除非您选择将引用传递给其他地方,否则通常您不需要这样做.