我注意到Microsoft以奇怪的方式在.NET 4中命名了它们的代码合同相关函数。Contract.Requires vs Contract.Require
它们在“require”和“ensure”的末尾添加“s”,所以有Contract.Requires()和Contract.Ensures(),但不在“assert”和“assume”的末尾,所以有Contract.Assert()和Contract.Assume()。这种差异让我有点困惑。实际上,我真正的问题是,我想在PHP中使用代码合同,所以我写了一些东西来模仿.NET 4中的“合同”类。由于PHP没有内置方法来验证类型的参数,我添加一个方法到我自己的Contract类来做一些验证。我选择“expect”这个词,因为我认为“expect参数'bar'是字符串,但是...”是参数类型错误时的常见消息。问题出现了。我应该将我的方法命名为Contract.Expect(),还是应该将其命名为Contract.Expects()?
我来自非英语国家,很抱歉我英语不好。 可能这实际上是一个英语问题,但我认为只有程序员可以帮助我。如果这个问题在这里不合适,那么很抱歉。