ArgumentNullException与Contract.Requires对比

时间:2013-04-13 23:39:19

标签: exception code-contracts

如果传递给它的参数为null, ArgumentNullException 会抛出异常。这发生在运行时。 Contract.Requires 做什么?它是在运行时检查或检查的编译时间吗?

1 个答案:

答案 0 :(得分:1)

Contract.Requires是运行时检查(运行时检查是在编译时自动生成的 - 请参阅documentation的第6.2和7章)。还可以执行某些静态检查(参见documentation的第6.6章),但Requires是运行时检查。

请注意,存在一个泛型重载,它允许您指定要抛出的异常(例如,ArgumentNullException)