Как сказать, в VS2010, что класс должен быть расположен? - PullRequest
2 голосов
/ 29 ноября 2011

Есть ли в Visual Studio 2010 простой способ узнать, требуется ли для типа удаление ?

например. я пишу код:

Collection<Prize> prizes = new Collection<Prize>();

я не знаю если мне нужно позвонить утилизировать.

То, как я справляюсь сейчас, - это нажмите Collection и нажмите F12 , чтобы найти IDisposable:

public class Collection<T> : IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection, IEnumerable

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

public class Collection<T> : IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection, IEnumerable
   public interface IList<T> : ICollection<T>, IEnumerable<T>, IEnumerable
      public interface ICollection<T> : IEnumerable<T>, IEnumerable
         public interface IEnumerable<T> : IEnumerable
            public interface IEnumerable    
         public interface IEnumerable
      public interface IEnumerable<T> : IEnumerable    
         public interface IEnumerable
      ...

Примечание : не путайте пример с вопросом. у меня может быть код:

 SqlConnection conn = new SqlConnection();

где я затем рекурсивно перебираю типы предков:

  public sealed class SqlConnection : DbConnection, ICloneable
      public abstract class DbConnection : Component, IDbConnection, IDisposable

Итак, я обнаружил, что этот класс нуждается во мне, чтобы позвонить Dispose. Но было бы проще, если бы мне не пришлось опускаться до F12

1 Ответ

3 голосов
/ 29 ноября 2011

Если у вас есть правило анализа кода премиум-класса или окончательной редакции CA1001: типы, для которых должны быть одноразовые поля, должны быть одноразовыми найдет типы, которые необходимо утилизировать.Чтобы включить анализ кода, перейдите в свойства проекта и выберите вкладку «Анализ кода», выберите «Включить анализ кода при сборке», для запуска правила CA1001 необходимо включить набор правил Microsoft.Design.

Coderush из Devexpress включает аналогичные функции,Это единственный вариант для стандартной редакции.Могут быть и другие надстройки, которые предлагают аналогичные функции.

Это невозможно сделать в экспресс-выпуске.

...