2015-07-09 2 views
1

В проекте MVC мы используем Unity's Guard.ArgumentNotNull для проверки нулевых параметров в конструкторе. Я думаю, что это довольно распространенная практика. Может ли кто-нибудь сказать мне, для чего нужен второй параметр - argumentName - в этом методе? Конечно, если компиляция проекта означает, что аргумент был правильно назван? Я попытался изменить это имя строки на что-то еще, и это не вызывает ошибки.Guard ArgumentNotNull - для параметра параметра argumentName?

Guard.ArgumentNotNull(userRoleProvider, "userRoleProvider");

+0

Я думаю, что этот аргумент предназначен для внутреннего исключения, которое может быть выбрано в случае нулевого аргумента. – ckruczek

+0

Возможно, вам захочется ознакомиться с предстоящей языковой функцией для C# 6, называемой 'nameof()' -, которая устраняет магическую строку. –

ответ

1

Если аргумент является недействительным, то Имя_аргумента передается в ArgumentNullException, чтобы указать, что имя нарушителя (нуль) аргумента.

Влияние самого компилятора (или рабочего времени) на само имя - строка аргументаName может быть чем угодно, но для того, чтобы иметь смысл (например, для устранения неполадок), должно быть фактическим именем аргумента.

Смежные вопросы