如果传递给它的参数为null, ArgumentNullException 会抛出异常。这发生在运行时。 Contract.Requires 做什么?它是在运行时检查或检查的编译时间吗?
答案 0 :(得分:1)
Contract.Requires
是运行时检查(运行时检查是在编译时自动生成的 - 请参阅documentation的第6.2和7章)。还可以执行某些静态检查(参见documentation的第6.6章),但Requires
是运行时检查。
请注意,存在一个泛型重载,它允许您指定要抛出的异常(例如,ArgumentNullException)