У меня довольно распространенный сценарий, а именно самореализованный интерфейс ILogger.Он содержит несколько методов, таких как _logger.Debug («Некоторые вещи») и так далее.Реализация обеспечивается LoggingService и используется в классах обычным способом.
Теперь у меня есть вопрос относительно производительности, я пишу для Windows Phone 7, и из-за ограниченной мощности этих устройств мелочиможет иметь значение.
Я не хочу:
- Включить в каждую строку директиву прекомпилятора, например #IF DEBUG
- Использовать условие, например log4net, например _logger.DebugEnabled
Насколько я понимаю, в версии выпуска я просто возвращаю NullLoggers, которые содержат пустую реализацию интерфейса, ничего не делая.
Вопрос:Компилятор распознает такие вещи (может быть трудно, он не может знать во время компиляции, какой регистратор я назначаю).Есть ли способ дать подсказку .NET для этого?
Причина моего вопроса, я знаю, что ввод пустой функции не вызовет большой задержки, никаких проблем там нет.Но в исходном коде моего приложения много строк, и, если они никогда не используются, они не обязательно должны быть частью моего приложения ...
Или я задумался над крошечной проблемой (возможно, соотношение «строка-код» просто ужасно выглядит в моем редакторе кода, и в любом случае это не имеет большого значения) ..
Спасибо за советы,
Крис