Я использую проверку типа ремня и подтяжек на предмет потенциальных проблем с нулевым объектом. Однако Resharper играет не очень хорошо. В отладочной сборке он отмечает проверку if (button! = Null)
как всегда истинной и помещает предупреждающий маркер на боковой панели. В сборке релиза он затеняет Debug.Assert
как никогда не использовавшийся код, хотя, по крайней мере, он достаточно умен, чтобы на этот раз не загромождать боковую панель.
Я не хочу глобально отключать предупреждение 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() );