gpt4 book ai didi

c# - 为什么C#中没有const成员方法和const参数?

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

与 C++ 不同,C# 中没有任何常量成员方法和常量参数。这是什么原因?

最佳答案

首先,不要求我们提供实现某项功能的理由。功能非常昂贵;必须有理由实现一项功能,而不是实现一项功能的理由。

其次,C# 不是 C++ 或 C 的克隆。仅仅因为某项功能是用其他语言编写的并不能成为将其放入 C# 的理由。

第三,“const”在 C 和 C++ 中被深深地、悲惨地破坏了。 “const”不能保证您实际上可以依赖。如果您是采用常量引用的方法的调用者,那么您无法保证该方法遵循常量;该方法有多种改变 const 引用的方法。如果您是 const 引用的消费者,那么您无法保证底层对象实际上不会任意改变。由于契约(Contract)在调用方或被调用方均未强制执行,因此它比我们希望在类型系统中做出的任何其他保证都要弱得多。我们不想复制这样一个损坏的系统。

第四,将 constness 放入 CLR 类型系统意味着每种语言都必须使用 相同 constness 实现;由于不同的语言对 constness 有不同的含义,这将使将更多语言引入 CLR 变得更难,而不是更容易

不做这个极其昂贵的功能的原因有很多,而去做的理由却很少。昂贵的、不合理的功能没有得到实现。

关于c# - 为什么C#中没有const成员方法和const参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4150478/

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