Любой способ генерировать предупреждение компилятора за неиспользованные использования? - PullRequest
3 голосов
/ 16 сентября 2009

Есть ли способ создать предупреждение в VS2008 за неиспользуемые операторы использования? Я знаю, что есть Edit->Intellisense->Organize Usings->Remove Unused Usings, но было бы неплохо, если бы это было предупреждение во время компиляции.

Ответы [ 4 ]

8 голосов
/ 17 сентября 2009

Мы стараемся создавать предупреждения для ситуаций, когда рассматриваемый код почти наверняка сломан, вводит в заблуждение или бесполезен. Кроме того, поскольку многие люди компилируют с включенными «предупреждениями как ошибками», у нас высокая планка; плохо вводить ложное или лишнее предупреждение.

Представьте, что вы компилировали с "предупреждениями как ошибками", включенными по умолчанию. Представьте, что мы реализовали функцию, которую вы хотите. Вы запускаете новый проект, а мы генерируем для вас:

using System;
using System.Text;
using System.Linq;

class Program
{
  static void Main(string[] arguments)
  {
  }
}

и мы немедленно сообщаем вам, что у вас есть ошибка в вашей программе, потому что ни одно из "использований" не требуется! Это очень плохой пользовательский опыт . Эти «значения» помещаются в IDE для вашего удобства, поэтому вам не нужно определять их самостоятельно. Ваша предложенная функция превратит это из удобства в кляп.

3 голосов
/ 16 сентября 2009

Если вы используете ReSharper , по умолчанию он будет отображать неиспользуемые значения другим цветом (как предупреждение на боковой панели анализа ошибок), а если вы выделите их, вы можете изменить их на показать как ошибки. К сожалению, это не помешает его компиляции, но предупреждает, что они не используются.

2 голосов
/ 16 сентября 2009

Нет, потому что это не проблема компилятора, поэтому вы не можете генерировать предупреждения компилятора. Предупреждения компилятора генерируются только при обнаружении мертвой области кода, такой как пустой оператор catch. Или неиспользованная переменная. В основном все, что может вызвать проблемы во время выполнения. Поскольку использование операторов не имеет ничего общего со временем выполнения и представляет собой больше проблем со стилем текстового файла, они не будут генерировать предупреждения.

Но вы можете использовать такой инструмент, как reSharper, чтобы предупредить вас о неиспользуемых выражениях.

0 голосов
/ 16 сентября 2009

Полагаю, это не предупреждение компилятора, потому что оно не имеет абсолютно никаких последствий ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...