C# 在流中使用关键字

标签 c# stream

我应该使用 using 关键字还是带有以下代码的 dispose 方法(因为我正在打开一个流):

 class Program
    {
        static void Main(string[] args)
        {
            var x = Deserialize<Dog>(new FileStream(@"C:\Documents and Settings\name\Desktop\demo.xml", FileMode.Open));
         }

        static T Deserialize<T>(Stream s)
        {
            XmlSerializer ser = new XmlSerializer(typeof(T));
            return (T)ser.Deserialize(s);
        }
    }

如果没有,您能否解释一下为什么(新的 FileStream 会自动处理/关闭流)?

最佳答案

你应该使用 using:

using(var stream = new FileStream(@"C:\path\demo.xml", FileMode.Open))
{
    var x = Deserialize<Dog>(stream);
    // more code ...
}

关于C# 在流中使用关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12855215/

相关文章:

c# - 什么时候使用 PreRender 而不是 PageLoad?

Java套接字文件发送

header - 是否有可能伪造一个 (mp4) moov 原子?

c# - 通过命令行构建 Visual Studio 项目

c# - Unity 插件的 .so 文件 : header files causing DllNotFoundException?

c# - 最佳实践以及如何在客户端的 C# 包装器中支持不同版本的 REST API

c# - 如何使用 Active Directory 存储在 AcquireTokenAsync 中收到的 token

java - 在 Java 中解码包含值类型对象的 CDR 流时如何更改字节顺序

python - 如何使用 openCV python 读取 Youtube 直播?

c# - 为什么我的新 XmlTextReader(stream) 以数兆字节读入内存而不是正确地流式传输?