gpt4 book ai didi

design-by-contract - 不可空对象有什么问题?

转载 作者:行者123 更新时间:2023-12-04 07:56:54 25 4
gpt4 key购买 nike

我最近一直在研究 DbC 和 Spec#,它们似乎支持不可空对象。不幸的是,Spec# 似乎已被放弃。

  1. Spec# 似乎内置了许多不错的语言特性,那么为什么要放弃它呢?
  2. 默认情况下让所有对象都不可为 null 会不会有任何问题,因此您必须编写 int?、string?甚至 MailMessage?如果您真的想要一个可为 null 的对象?
  3. 我在这里看到了一种 Sql 类比你可以在哪里查看类(class)可空或不可空的属性可为空。你能不能把对属性的限制可以用 sql 表列吗?

我不认为将此类功能内置到语言中有什么问题。有人可以启发我吗?

最佳答案

你看到新的Contracts framework了吗?将成为.NET 4.0 的一部分?

使它成为一个库而不是语言功能的好处是它可以立即以所有语言提供,而无需语言团队的任何工作。当然也有缺点...

链接:

说了这么多,我希望能够写:

public Stream! Foo(string! x)

同样,表明 Foo 不能接收空引用,也不会返回空引用。我认为,just 为那种类型的契约(Contract)添加一些额外的语法会很方便。

关于design-by-contract - 不可空对象有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/487046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com