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

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

public void GetMonth (целый месяц) { }

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

e.g

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

Является ли это возможным ?


person Community    schedule 19.02.2009    source источник


Ответы (2)


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

if(month < 1 || month > 12) throw new ArgumentOutOfRangeException("month");
person Marc Gravell    schedule 19.02.2009

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

person Avram    schedule 20.02.2009