gpt4 book ai didi

c# - 使用代码契约来定义不可变接口(interface)?

转载 作者:可可西里 更新时间:2023-11-01 09:12:02 25 4
gpt4 key购买 nike

我可以使用代码契约在接口(interface)上定义只读、不变的属性吗? IE。实例化后始终产生相同值的属性?

最佳答案

首先注意 .NET 中的术语:

  • 只读:您碰巧拥有的接口(interface)不能用于改变对象或集合
  • 不可变的:没有什么可以改变对象或集合

现在回到你的问题。

在 .NET 代码约定中,所有属性 getter 都隐式标记为“纯”。这意味着从 getter 中读取永远不会有明显的副作用。

从严格意义上讲,如果您有一个只有只读属性的抽象接口(interface),那么整个接口(interface)都被认为是只读的。

但是,听起来您真正想要的是一种将接口(interface)标记为不可变并让底层类继承该状态的方法。不幸的是没有办法做到这一点,抽象接口(interface)只能添加功能。 Code Contracts 所能做的最好的事情就是确保正确添加了功能。

总结

不,它不支持。

关于c# - 使用代码契约来定义不可变接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9137124/

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