有沒有什麼辦法標記一個方法,以便代碼分析或建立與提供錯誤消息來處置方法返回的對象。例如,在下面的方法。任何方式來知道如果調用方法應該處置被調用的方法返回的對象
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