问题标签 [contracts]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
486 浏览

c# - 私有静态只读字段的代码合同和失败

我的班级中有一个私有静态只读字段:

对于问题 #1,我使用了一个空合并运算符来默认为某个魔术字符串并修复了它,但我真的不喜欢那个解决方案。我希望有更好的解决方案。

对于问题 #2,我唯一能想到的是使用 Contract.Assumes,因为如果我尝试使用Contract.Requires(MyDirectory.Exists || !String.IsNullOrEmpty(MyDirectory.FullName));它会抱怨可见性(在受保护方法的要求中使用的私有字段)。

0 投票
3 回答
288 浏览

interface - 如何在 D 接口中有意义地使用前置条件契约?

当我用“in”合约覆盖 D 中的函数时,会检查继承的“in”合约。如果它们失败,则检查覆盖的“in”合同。如果我没有在合同中指定任何内容,那么它被解释为好像有一个空的“in”合同。所以下面的代码编译运行成功。

我只希望在I.write()调用时检查先决条件,i.write()因为这是静态已知足以让I.write()编译器正确运行的条件。从 OO 的角度来看,在动态调度之后检查所有先决条件让我觉得很奇怪,因为封装丢失了。

我可以重复前提条件或在所有实现接口的类中编写in { assert( false ); },但这很痛苦。这是D语言的设计错误吗?还是有任何适当的可扩展方式来做到这一点?

0 投票
1 回答
752 浏览

java - JML 后置条件包含类方法调用

类方法的 JML 后置条件是否可以包含对另一个方法调用的调用

例如我有这个类:

对于 doB 的后置条件,我可以有:ensures doA(x) = doA(y)

0 投票
1 回答
292 浏览

uml - 这份合同要写什么

我正在设计一个学术决策支持系统。我必须为该项目编写文档。我坚持的部分是写合同。

我有一个用例Generate custom reports

用户将与系统进行的交互是setParametersforReport()

在此函数中,他将设置属性,如student_rollNumbermarks,或warning count他想在报告中看到的任何其他内容。

但是我很困惑在合同的后期条件中写什么。

我应该提到的三件事是:

  1. 创建的实例
  2. 协会成立或破裂
  3. 属性已更改

我不知道该写什么以及如何解释,因为实际上没有创建任何内容。我在数据库中有我想要的所有数据,并且我在没有类的情况下访问它们。我很困惑,因为无法创建数据库实例。

请任何帮助将不胜感激。

0 投票
2 回答
1129 浏览

wcf - 来自 wcf 代理的操作合约列表

我可能需要搜索或调查更多。但是想先问你们。我在 Windows 中托管了几个 WCF 服务,在客户端我有所有这些服务合同的代理。我的应用程序正在使用它们,并且运行良好。现在我想知道如果我提供服务端点/我拥有的其他东西,是否有任何方法可以从每个合同中获取操作列表。

结束品脱

代理人

我需要一种方法来获取服务合同中的操作列表...在这种情况下 List opeartions = SendEcho(); 我如何得到这一点?

0 投票
1 回答
1150 浏览

java - 我们如何将 JML (openJML) 应用于 Java 代码?

我们如何将 JML 应用于 Java 代码?我仍然是合同设计的新手,并且对如何将其应用到程序中非常迷茫。

http://jmlspecs.sourceforge.net/

使用:

  • 开放式JML
  • 网豆 7.3
  • Java SDK 1.7

我已经将 OpenJML jar 文件添加到 Netbeans 的类路径中。我尝试了 cofoga google jml 版本,您只需在其中导入 com.google.java.contract.Ensures;import com.google.java.contract.Requires 然后你可以添加前置条件和后置条件

我们如何在我的程序中使用 openJML 指定前置条件和后置条件?

0 投票
1 回答
2396 浏览

c# - Contract.Requires 和 Contract.Ensures 的区别

我已经在 microsoft 网站上查找了差异,但实际上并没有看到差异。该网站的链接如下

任何额外的解释都会很棒

使用 Visual Studio C#

0 投票
1 回答
101 浏览

racket - 除了 `new-∀/c` 和 `new-∃/c` 之外,Racket 还有哪些模拟合约?

球拍合同分为三类:平面合同、陪护合同和模仿者合同。

对于 Impersonator 合约,我能找到的唯一例子是parametric polymorphism的合约。除了这些,还有其他例子吗?

0 投票
2 回答
84 浏览

c# - 具有多个参数的合同

我开始使用 c# 中的合同进行编码。我想在 C# 中表达以下属性

即如果两个元组的第一个元素相同,则第二个元素也应该相同。

这里的问题是 (e1,e2) => ... 由于有两个参数,它不是一个有效的表达式。有人现在如何用 e1 和 e2 表达这个合同吗?或者如何重写?

0 投票
3 回答
324 浏览

java - 构造函数应该何时以及如何对实例变量实施限制?

我是编程新手,正在学习 Java 作为我的第一门 oo 语言,方法是阅读 David J. Eck 的 Java 编程简介,并在遇到困难时阅读论坛帖子。

我的问题可以被认为是Java Class Constructor Parameters with range limits的后续,它处理将 Hour 类的构造函数的 int 参数限制为 0 到 23。

上述问题的答案提到抛出实例化异常或 IllegalArgumentException,但不清楚哪种方式更好。

此外,何时(如果有的话)与验证代码相关的开销是合理的?