Ann*_*son 8 .net c# idisposable using-statement
我对所有关于IDispose和"使用"语句的讨论感到困惑.我想知道是否有人可以告诉我是否需要在以下测试示例中使用"using"语句或IDispose的某种实现...
public class Main()
{
MyFile myFile = new MyFile("c:\subdir\subdir2\testFile.txt");
Console.Writeline("File Name: " + myFile.FileName() + "File Size: " + myFile.FileSize());
}
public class MyFile
{
private FileInfo _fInfo;
public MyFile(string fullFilePath)
{
_fInfo = new FileInfo(fullFilePath);
}
public string FileName()
{
return _fInfo.Name;
}
public long FileSize()
{
return _fInfo.Length;
}
}
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 21
不,您的示例不使用任何需要处理的资源(它不会触及实现的任何内容IDisposable,或者对非托管资源有任何直接句柄),因此您不需要实现IDisposable.
现在,如果您更改了类以打开文件,并维护一个FileStream引用打开文件句柄的字段,那么实现IDisposable关闭流是有意义的.
在你的例子中没有什么可以处理,所以你没有必要这样做.
如果你想在文件中读/写,你可以使用Streamreader/Streamwriter,这样你就需要在使用它们之后处理它们.
using(StreamReader sreader=new StreamReader())
{
//your code
}
Run Code Online (Sandbox Code Playgroud)
因此,在这种情况下,使用语句将帮助您不要考虑手动处理/关闭对象/