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