Здравствуйте, ylem, Вы писали:
Y>Мотив проверять: в реализации "view" кто-то что-то изменить (или оно уже сейчас не всегда работает так, как я предполагаю).
Y>Мотив в релизе не кидать эксэпшн: у пользователя просто не будет работать один контрол
но все остальное будет доступно и ничего не потеряется
Мы для таких вещей пишем
var combo = view.ActiveEditor as ComboBoxEdit;
DebugCode.BugIf(combo == null, "Bug: combo is not ComboBoxEdit");
...
Т.е. для отладочного кода — падаем с понятным сообщением, для релиза — никаких проверок и (скорее всего) падаем с NRE.
Это в типовом случае "код из нагруженного участка, покрыт тестами, ошибки быть в принципе не может, для подстраховки — вот тебе ассерт".
Если ситуация другая, то можно или оставить ассерт и в релизных сборках, или (ниже) проверять combo на null и действовать по обстоятельствам.
Меня подобный вариант не очень привлекает, т.к. такие костыли явно намекают на косяк в дизайне приложения. Лучше написать нормально и не оставлять грабли на потом.