Используйте атрибуты, чтобы избежать неправильных входных аргументов - PullRequest
1 голос
/ 19 февраля 2009

У меня есть метод, который принимает Int в качестве ввода

public void GetMonth (int Month) { }

Теперь, когда я вызываю этот метод, я хочу убедиться, что компилятор генерирует сообщение об ошибке, когда кто-то вводит номер, который не находится в диапазоне 1-12.

Например,

obj.GetMonth (14) - Здесь он должен выдавать ошибку и не компилируется

Возможно ли это?

Ответы [ 2 ]

3 голосов
/ 19 февраля 2009

Это будет функция в 4.0, благодаря кодовым контрактам , которые позволяют вам объявить именно это. Но не сейчас. Вам потребуется код проверки во время выполнения:

if(month < 1 || month > 12) throw new ArgumentOutOfRangeException("month");
0 голосов
/ 20 февраля 2009

Может быть, используя Microsoft.Build.Utilities.Task , но это звучит как сложные задачи.
Этот класс может помочь генерировать ошибки времени сборки .
Но действительно сложная часть - это анализ кода , чтобы решить, когда вам нужно остановить сборку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...