Вызов метода пропускается в C#?
У меня есть этот простой код:
void Application_BeginRequest(object sender, EventArgs e)
{
Trace.Write("Exception Handling", "......");
}
Однако еще более резкий крик (только без ошибок) о:
Вызов метода пропускается. Компилятор не будет генерировать вызов метода, потому что метод является условным, или это частичный метод без реализации
Я не могу увидеть эту строку в выводе трассировки.
однако - другие следы - я вижу.
Это почему?
(ps Страница (которая находится под проектом веб-сайта) имеет trace="true"
).
2 ответа
Будьте уверены, что TRACE
константа определяется в настройках вашего проекта для текущей конфигурации сборки.
ОБНОВИТЬ
Поскольку это проект веб-сайта, вы можете поставить
#define TRACE
на вершине Global.asax.cs
так что символ трассировки определен.
Чтобы процитировать вики JetBrains (которая может * быть связана с меню ReSharper в разделе "Почему ReSharper предлагает это"):
Во время кодирования вы можете столкнуться с предупреждениями относительно методов, чьи вызовы не будут генерироваться компилятором. С чего бы это? Типичные случаи - это условные методы, которые не будут компилироваться (например, они помечены
[ReSharperInt:Conditional("DEBUG")]
и ты вRELEASE
Режим). Другая причина, по которой метод может быть пропущен, заключается в том, что в какой-то момент его тело было объявлено какpartial
и реализация не была предоставлена.
Учитывая, что это по методу Trace
Я бы предположил, что первым из этих типичных случаев является тот, который применяется.
* У меня еще нет v7