【发布时间】:2011-03-29 01:00:14
【问题描述】:
我今天正在处理一些使用 System.Net.Mail.MailMessage 类的代码
public MailMessage CreateMessage(string fromAddress, string recipient)
{
MailMessage message = new MailMessage(fromAddress, recipient);
message.Subject = subject;
message.Body = body;
return message;
}
忽略此方法的琐碎性质,我收到编译器警告说
对象“消息”未随 所有异常路径。称呼 System.IDisposable.Dispose 对象 'message' 在所有对它的引用之前 超出范围。
这很有趣,因为编译器警告消息在超出范围之前不会被释放,但我认为返回对它的引用意味着虽然消息变量超出范围,但仍然是对底层对象的引用,在这种情况下,我非常怀疑我是否要处理它。
这让我有点困惑,因为警告消息的含义是您不应该退回一次性物品。真的是这样,还是只是编译器警告发疯了?
【问题讨论】:
-
我认为是 VS2010 中的代码分析给你这个警告,而不是编译器。
标签: c# dispose idisposable