在处理完一个对象时,using 指令和 dispose 指令哪个更好?
using(FileStream fileStream = new FileStream(
"logs/myapp.log",
FileMode.Open,
FileAccess.Read,
FileShare.ReadWrite))
{
using(StreamReader streamReader = new StreamReader(fileStream))
{
this.textBoxLogs.Text = streamReader.ReadToEnd();
}
}
另一方面,当我处理 System.Net.Mail 时,我被告知我需要对该对象执行 Dispose() 以释放任何杂散锁。
是否有任何一致的指导?我如何判断在给定对象的给定情况下什么更合适?
最佳答案
using 语句(非指令)涉及在 finally block 中对 Dispose()
的隐式调用。所以这里并不矛盾。你能链接到那个讨论吗?
的官方定义
使用 (x) { ... }
是
try ... finally if (x != null) x.Dispose(); }
What is better?
从符号的角度来看,using() { }
block 。从技术上讲,它们是相同的。
关于c# - C#中使用[using]语句好还是[dispose]方法好?这是否适用于外部 (COM) 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3560921/