什么时候处理?

我对所有关于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; } } 

不,您的示例不使用任何需要处理的资源(它不会触及实现IDisposable任何内容,或者对非托管资源有任何直接句柄),因此您不需要实现IDisposable

现在,如果您更改了类以打开文件,并维护一个引用打开文件句柄的FileStream字段, 那么实现IDisposable来关闭流是有意义的。

不,在提供的代码中,我没有看到任何必须处理的资源。 所以答案是否定的 ,不要在这段代码中使用它。

在你的例子中没有什么可以处理,所以你没有必要这样做。
如果你想在文件中读/写,你可以使用Streamreader / Streamwriter,这样你就需要在使用它们之后处理它们。

 using(StreamReader sreader=new StreamReader()) { //your code } 

因此,在这种情况下,使用语句将帮助您不要考虑手动处理/关闭对象/

在您的代码中,不需要任何Dispose / using – 有关IDisposable指南,请参阅此处 。