【问题标题】:What’s similar between const and static? [duplicate]const 和 static 有什么相似之处? [复制]
【发布时间】:2019-12-25 03:38:40
【问题描述】:

我们都知道静态和常量之间的区别。有人可以帮我理解所有的相似之处吗?

【问题讨论】:

  • 我在发布我的问题之前已经阅读了这篇文章。它只说明不同之处,而不是相似之处。
  • 那么,所有除了差异都是相似
  • 您到底在寻找什么信息?

标签: c#


【解决方案1】:

唯一可以说的“相似之处”是 const 是隐式静态的,因此不能显式标记为这样。

内存方面的 const 比 static 稍微有效一些,因为它跳过了对指针的任何需求。静态仍然作为内存中的值存在,可以读取和(至少在理论上)写入。每次使用静态变量时,都会放置一个指向该实例的指针,并在运行时解析。

同时,常量只是一个原始值,事实上是硬编码的。 const 的每次使用都与写它的字面值相同。这有利于原语(因为值比指针 + 值更便宜)。

我不是 100% 确定类引用上的 const 实现。我猜在这种情况下它实际上更像是一个只读静态。

在实践中,您会遇到比常量更多的只读静态变量。例如,所有semi-constant fields on the Path class 都是只读静态的。常量(除非我们谈论 Enums)在运行时或其他访问您内容的代码中几乎没有价值。

【讨论】:

    猜你喜欢
    • 2012-12-26
    • 1970-01-01
    • 2011-12-30
    • 2011-04-09
    • 2015-11-19
    • 1970-01-01
    • 2013-09-05
    • 2016-04-02
    • 2012-03-17
    相关资源
    最近更新 更多