问题标签 [code-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.
.net - Sandcastle 是否支持代码合约?
我的图书馆使用代码合同。
有没有办法将这些合同合并到沙堡生成的文档中?
c# - 为什么使用默认(类型)时合同格式错误?
在编译使用代码契约的代码时,我有一个非常奇怪的错误,我不明白。
失败并出现以下错误:
格式错误的合同。在方法 '<ProjectName>.ObjectInvariant' 中分配后发现 Invariant。
如果代码被这样修改:
它编译得很好。
我的怎么了default(Guid)
?
validation - Microsoft 代码合同是否不适合验证用户输入?
我在 SO 上的其他地方看到过,虽然企业库验证应用程序块用于验证用户输入,但代码合同旨在防止程序员错误。你会支持这个观点吗?为什么?
c#-4.0 - 合约类应该是一个抽象类
下面的代码给了我警告Contract class 'FooContracts' should be an abstract class
。从我在线阅读的所有示例(例如http://www.infoq.com/articles/code-contracts-csharp)中,这应该可以工作(大概没有编译器警告)。
我在 Visual Studio 2010 中,Code Contracts
在项目属性部分具有以下设置:
- 执行运行时契约检查(设置为
Full
) - 执行静态合约检查(下
Static Checking
) - 签入后台
我还定义了CONTRACTS_FULL
编译符号以使 ReSharper 闭嘴。
我是否遗漏了一些东西来使这个编译没有警告?
code-contracts - 代码合同。如何抑制生成代码的警告?
如何关闭我的 Linq2Sql 代码的静态检查?
oop - 埃菲尔:放宽前置条件,收紧后置条件?
在埃菲尔,有人说我们应该“放松前置条件,收紧后置条件”,但我不知道这是什么意思。子分类如何受益/受益?
谢谢
c# - 在 C# 代码合同中使用纯函数时的静态验证限制?
我正在尝试使用代码合同静态验证基于数组的堆栈的以下部分实现。该方法Pop()
使用纯函数IsNotEmpty()
来确保后续数组访问将处于/高于下限。静态验证器失败并建议我添加 precondition Contract.Requires(0 <= this.top)
。
谁能解释为什么验证者不能证明数组访问对于给定合同的下限是有效的IsNotEmpty()
?
起初我认为这种Contract.Requires(IsNotEmpty())
方法可能不正确,因为子类可以覆盖IsNotEmpty()
. 但是,如果我将类标记为sealed
.
更新:如果我更改IsNotEmpty()
为只读属性,则验证按预期成功。这就提出了一个问题:只读属性和纯函数如何/为什么被区别对待?
metrics - 是否有人使用过按合同设计的指标,或者可以推荐指标来衡量代码库中按合同设计的使用情况?
我们目前正在向一个由大约 60 名开发人员组成的软件开发小组介绍按合同设计,他们正在开发不同的组件。我们首先为 C# 和 Java 定义了按合同设计的策略。为了衡量进度,我们通过简单搜索关键字(不包括注释和字符串文字)来计算类的数量和合同断言(前置条件、后置条件和不变量)的数量。所以我们有两个统计数据:
- 每个组件的合约断言数
- 每个组件每个类的平均合约断言数
是否有人使用过按合同设计的指标,或者可以推荐指标来衡量代码库中按合同设计的使用情况?
c# - Resharper 和 Code Contracts 不能很好地协同工作
我正在使用 Resharper 5.x 进行编译时分析,它通常非常好,但它似乎没有将代码契约应用于其逻辑。我有类似以下的内容,但我在标记线上遇到了问题。
[1] 最终以“可能的'System.InvalidOperationException'”突出显示。有没有办法在不关闭检查的情况下摆脱这个错误?