Мне нравятся утверждения и удобочитаемость кода, но не дублирование кода, и в некоторых местах я использую Debug.Assert
, который проверяет наличие одного и того же состояния следующим образом:
Debug.Assert(kosherBaconList.SelectedIndex != -1, "An error message along the lines - you should not ever be able to click on edit button without selecting a kosher bacon first.");
Это в ответ на фактическую ошибку, хотя фактический список не содержит кошерный бекон. Во всяком случае, я могу думать о двух подходах:
private static readonly mustSelectKosherBaconBeforeEditAssertMessage =
"An error message along the lines - you should not ever be able to " +
"click on edit button without selecting a something first.";
...
Debug.Assert(
kosherBaconList.SelectedIndex != -1,
mustSelectKosherBaconBeforeEditAssertMessage)
или
if (kosherBaconList.SelectedIndex == -1)
{
AssertMustSelectKosherBaconBeforeEdit();
}
...
[Conditional("DEBUG")]
private void AssertMustSelectKosherBaconBeforeEdit()
{
// Compiler will optimize away this variable.
string errorMessage =
"An error message along the lines - you should not ever be able to " +
"click on edit button without selecting a something first.";
Debug.Assert(false, errorMessage);
}
или есть третий способ, который сосет меньше, чем любой из вышеперечисленных? Поделись, пожалуйста.
Общие полезные советы также приветствуются.