Skip to main content
 首页 » 编程设计

.net之什么是托管 C++ 等效于 C# using 语句

2025年04月02日25freeliver54

如何在托管 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; 
} 

第一个将是“使用”的直接替代品。第二个是一个选项,通常你不需要这样做,除非你有选择地将引用传递给其他地方。