Как я избавляюсь от “[некоторое событие] никогда используемые” предупреждения компилятора в Visual Studio?

У меня была минимальная любовь к любым детекторам утечки памяти. Обычно существует слишком много ложных положительных сторон для них, чтобы иметь любое применение. Я рекомендовал бы эти два, как принадлежат наименее навязчивое:

"куча" Отладки GlowCode

84
задан poke 24 April 2018 в 07:00
поделиться

3 ответа

Это похоже на предупреждение 67 и, таким образом, может быть подавлено с помощью:

#pragma warning disable 67

Не забудьте восстановить его как можно скорее (после объявления события) с помощью :

#pragma warning restore 67

Однако я бы проверил еще раз и убедился, что вы где-то инициируете событие, а не просто подписываетесь на него . Тот факт, что компилятор выдает 20 предупреждений , а не 20 ошибок , когда вы комментируете событие, тоже вызывает подозрение ...

Также есть интересная статья ] об этом предупреждении и, в частности, о том, как оно применяется к интерфейсам; есть хорошее предложение, как бороться с «неиспользуемыми» событиями. К сожалению, эта ссылка кажется (временно?) Мертвой, но важные части: { Добавить { } удалять { } }

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

 публичное событие EventHandler не поддерживается
{
добавить {бросить новое исключение NotSupportedException (); }
 удалять { }
}

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

126
ответ дан 24 November 2019 в 08:28
поделиться

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

Также убедитесь, что вы действительно где-то вызываете событие.

1
ответ дан 24 November 2019 в 08:28
поделиться

Вы можете подавить отдельные предупреждения.

\Program.cs(13,20): warning CS0219: The variable 'foo' is assigned but its value is never used

В этом случае CS0219 - это предупреждение о переменных, которые назначаются, но не используются. Вы можете использовать флаг / nowarn: 0219 или добавить номер ошибки на панели свойств проекта (в разделе «Сборка» не забудьте удалить начальную CS). Помните, что подавляет все предупреждения этого класса.

1
ответ дан 24 November 2019 в 08:28
поделиться
Другие вопросы по тегам:

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