Понятие "честной функции" все еще имеет место для интерпретации, и я не хочу спорить об этом здесь, было бы больше мнения, чем фактического полезного ответа.
Чтобы конкретно ответить на ваш пример, вы может объявить NonZeroInteger
как ValueType с struct
вместо class
.
Тип значения не может иметь значение NULL (кроме случаев, когда вы явно указываете NULL-версию с ?
). Нет нулевой проблемы в этом случае. Кстати, int
является примером типа значения (точнее, псевдонимом для System.Int32
).
Поскольку у некоторых указано , это может привести к другим трудности (структура всегда имеет конструктор по умолчанию, который инициализирует все поля по умолчанию, а для int
по умолчанию задано значение 0 ...)
Для программистов среднего уровня этот пример не нужен быть явно реализованным в статье, чтобы быть понятным в принципе.
Однако, если вы не уверены в этом, это определенно будет хорошим обучающим упражнением по программированию, я настоятельно рекомендую вам реализовать его самостоятельно! (И, между прочим, создайте модульные тесты, чтобы продемонстрировать, что в вашей функции нет «ошибки»)