using (StreamReader fileStr = new StreamReader(path, System.Text.Encoding.GetEncoding("UTF-8"))) { using (var csvr = new CSVReader(ref fileStr)) { } }
上面的代码会有问题,提示说 fileStr是using变量不能通过ref传递
StreamReader fileStr; using (fileStr = new StreamReader(path, System.Text.Encoding.GetEncoding("UTF-8"))) { using (var csvr = new CSVReader(ref fileStr)) {
这样在外面申明就好的
我想问在外面申明,里面初始化 那么using对StreamReader资源的释放会有影响么?
using语句是用来处理实现了Idispose接口的类型的,编译的时候,会转换为Try Finally语句块,在Finally中调用Dispose方法.
StreamReader fileStr; 只是一个声明,并没有实例化,using块是将实例化的fileStr给释放掉,所以对资源的释放时没有影响的