смешной C # Contract.Require ошибка с комментариями? - PullRequest
2 голосов
/ 30 октября 2010

У меня был следующий код:

Contract.Requires(somecondition, "some message"/*some comment*/);

и при отладке в какой-то момент условие не было выполнено, и возникло исключение с обычным текстом плюс комментарий! : P Итак, я получил это исключение:

ContractException was unhandled.

Precondition failed: somecondition. "some message"/*some comment*/

Итак, мой вопрос, это ошибка или что? Второй параметр метода имеет тип string, но он принимает только литералы, поэтому я знаю, что весь метод является хаком, но он не должен принимать этот комментарий, верно?

1 Ответ

2 голосов
/ 30 октября 2010

Это связано с тем, что «Средство переписывания кодовых контрактов» переписывает инструкцию, чтобы пользователь мог видеть всю информацию в полученном сообщении об исключении (включая само выражение условия и, очевидно, комментарии).

http://visualstudiomagazine.com/articles/2010/06/23/code-contracts.aspx

...