Я использую проверку типов ремней и подтяжек для потенциальных проблем с нулевым объектом. Тем не менее, решар не играет хорошо. В сборке отладки он отмечает проверку if (button != null)
как всегда true и помещает предупреждающий маркер в боковую панель. В релиз-сборке он выделяет Debug.Assert
как никогда не используемый код, хотя по крайней мере он достаточно умен, чтобы на этот раз не загромождать боковую панель.
Я не хочу отключать предупреждение true/false resharper глобально, потому что это может указывать на проблему в коде. В то же время каждый раз, когда я делаю чек, нужно загромождать код с комментариями ReSharper disable/restore ConditionIsAlwaysTrueOrFalse
.
Есть ли опция в ReSharper 5.1, чтобы отключить поведение контингента типа сборки, чтобы if не помечен в отладочных сборках, не предотвращая показ предупреждения, если Assert
не присутствует?
//This should always work unless the columns are fiddled with.
LinkButton button = e.Row.Cells[5].FindControl( "linkButtonName" ) as LinkButton;
//if this isn't the case in a debug build have VS throw an error in the devs face
Debug.Assert(button != null);
//Don't let anything go boom in production if an error isn't caught in dev
if (button != null)
button.Visible = ( schedule.CreatedBy == Authentification.GetLoggedInUser() );