Существует ли правило FxCop для локального используемого IDisposable's?

... если я использую IDisposable в локальной переменной, но не звоню, Располагают () или используют использование () шаблон.

public void BadMethod()
{
    var fs = new FileStream("file.txt", FileMode.Create);
    fs.WriteByte(0x55);
    // no dispose, no using()
}

Точно так же, как "Типы, которые владеют доступными полями, должны быть доступным" правилом для полей.


Править: Замененные MemoryStream FileStream, потому что MemoryStream просто выделяет память и не использует (неуправляемые) ресурсы, таким образом, кто-то мог обсудить об обязательном, Располагают () вызов.

6
задан ulrichb 7 February 2010 в 12:55
поделиться

1 ответ

Есть ли для этого правило FxCop? И да и нет.

В FxCop 1.35, на котором основан анализ кода Visual Studio 2005, существовало правило DisposeObjectsBeforeLosingScope , которое делало именно это.

В FxCop 1.36 (анализ кода Visual Studio 2008) они удалили свой механизм анализа потока данных, что означало, что это правило также пришлось удалить.

Однако в следующем FxCop ( Visual Studio 2010 Code Analysis) кажется, что DisposeObjectsBeforeLosingScope вернулся!

15
ответ дан 8 December 2019 в 16:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: