有没有什么办法标记一个方法,以便代码分析或建立与提供错误消息来处置方法返回的对象。例如,在下面的方法。任何方式来知道如果调用方法应该处置被调用的方法返回的对象
private void chart1_Click(object sender, EventArgs e)
{
Brush sb = GetBlackBrush();
}
Brush GetBlackBrush()
{
SolidBrush sb = new SolidBrush(Color.Black);
return sb;
}
,只要任何所谓GetBlackBrush方法,同时建立在VS2010的解决方案,我应该得到一个代码分析警告或建立自己的错误或建立警告,以表明我需要处理Brush对象。我想我应该在chart1_Click()方法中处理刷子对象。
这只是一个示例代码,我知道我们应该使用“使用”但这里有什么解决方案。
有一个CA2213代码分析警告,但没有被调用这个特定的例子。
你真的不想立刻处置它,是吗? – leppie 2014-11-21 07:20:50
在这种情况下,代码分析无法判断是否需要处理该对象。该方法返回该对象,这通常意味着它不应该被丢弃,因为您将它交给其他代码。所以在你的例子中,你不应该使用'using'。一般来说,代码分析在识别未处理的对象以及不离开该方法方面做得很好。 你有一个更合理的例子,代码分析没有发现真正的错误吗? – 2014-11-21 07:22:18
这是一个真正的例子,如果您在其他方法中使用此方法GetBlackBrush(),代码分析不会给出任何错误。代码分析不会给出错误。 – 2014-11-21 07:29:41