给定一个方法
public static bool Connection.TryCreate(out Connection connection) {}
还有一段调用代码:
Connection connection;
if (!Connection.TryCreate(out connection))
// handle failure gracefully.
/*
* work with connection
*
* …
*
*/
connection.Dispose();
我正在使用与bool.TryParse
等相同的模式,即TryCreate
返回操作是否成功。
我意识到using()
变量在其块内需要是只读的,但是否有一种方法可以将上述代码转换为using() {}
块(TryCreate
仅设置一次), 类似这样:
using (Connection connection)
{
if (!Connection.TryCreate(out connection))
// this would leave the using() block prematurely
/*
* work with sconnection
*
* …
*
*/
}
(这段代码无法编译:
error CS1657: 无法将“connection”作为ref或out参数传递,因为它是一个“using变量”
)
connection
进行了空/非空值的简单测试了吗?它是否编译通过?是否运行成功? - Uwe Keim