c# - 在 .NET 中处理和返回值

标签 c# .net

考虑以下几点:

        TextReader reader = new StreamReader(file);
        XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));
        return (T)xmlSerializer.Deserialize(reader);

        using (TextReader reader = new StreamReader(file))
        {
            XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));
            return (T)xmlSerializer.Deserialize(reader);
        }

后一段代码实际上会发生什么?会调用 Dispose() 吗?

最佳答案

是的,它会被调用。

using 语句是语法糖:

try
{
    // Do stuff
    return;
}
finally
{
    // Dispose
}

并且 finally 甚至在 return 时也会被调用。

所以你可以安全地使用它。

关于c# - 在 .NET 中处理和返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7254815/

相关文章:

c# - 具有相同名称属性循环的多个复选框

c# - 在 .NET 中生成、显示和打印简单文档

c# - .Net 可移植类库和 Microsoft.WindowsAzure.Mobile.Service.EntityData

.net - 您将如何使用 DVCS(在我的例子中是 mercurial)来开发不同版本的 .NET 框架?

.NET Bootstrap 无需设置

c# - Caliburn.micro DataGridComboBoxColumn 未绑定(bind)

c# - 从具有模式的目录中获取文件

c# - 在 .Net Core 2.2 类库项目中未读取/检测到 App.config 值

.net - .NET 中的 XML 代码注释

.net - 与 Azure 表存储的连接失败