Я ненавижу писать код, который делает мою программу более надежной. Это то, что должен был сделать фреймворк! Итак, кто-нибудь знает об утилите, «улучшающей» код, которая укрепляет код?
Если бы мне пришлось создать что-то подобное самому, это работало бы следующим образом: когда вы компилируете свой код с флагом отладки, он автоматически волшебным образом добавлял бы «затвердевающий» код для каждого метода:
Деформируйте код с помощью try-catch и поместите Debug.Assert(true) в catch (чтобы исключения перехватывались в их источнике).
Регистрируйте запись каждого метода, печатая значения аргументов «ToString()», чтобы я мог отслеживать, что происходит.
Проверяйте каждый аргумент на null.
Используйте структуру «IsValid» для проверки самого объекта и каждого аргумента, где IsValid() — это способ объекта объявить, что его ожидания верны (например, если я TableOfContentsEntry, я ожидаю, что всегда буду в книге, которая является действительной () и указать на страницу, которая является IsValid().
Так почему бы не?