Есть много вопросов о том, что SO сожалеет о том, что правило анализа кода CA2000 применяется, возможно, слишком жестко к VS2010, но я, кажется, столкнулся со случаем, когда его следует применять, но это не так.
Рассмотрим следующий код:
Image srcImage = Image.FromFile(source);
Bitmap newImage = new Bitmap(newWidth, newHeight);
using (Graphics gr = Graphics.FromImage(newImage))
{
gr.DrawImage(srcImage, new Rectangle(0, 0, newWidth, newHeight));
}
newImage.Save(destination, ImageFormat.Jpeg);
Теперь, если я запускаю Code Analysis в Visual Studio 2010 для этого, он будет жаловаться на то, что newImage не удаляется (легко исправить, поместите его в другой блок с использованием), но он не будет жаловаться на srcImage (в котором также есть метод Dispose (), который я никогда не вызываю). Кто-нибудь знает, почему Code Analysis здесь не жалуется?