【问题标题】:Will a const variable ever change?const 变量会改变吗?
【发布时间】:2016-09-22 04:43:01
【问题描述】:

我试图弄清楚如何在另一个方法中复制 Start() 方法,关于 start 定义如何始终保持不变而不是更新(例如,如果我在 Start() 中记录了一个名为 StartTime 的变量并将其设置为 Time.time)。在方法内部创建并设置为另一个变量的值的常量整数是否保持不变?例如,这是我的代码:

const int originalAmount = data.amount;

之后,data.amount 会降低/提高。原始金额是否等于第一次设置时的值,或者等于新的 data.amount 值,如果它等于新值,我是否有另一种方法可以在定义时定义一个等于另一个变量的变量?感谢您给我的任何帮助,只是在理解这一点时遇到了一些麻烦!

编辑:另外,这个 int 是在一个 for 循环中定义的,并且 originalAmount 应该更新为每个循环上的当前 data.amount,对吗?

【问题讨论】:

  • 您提到这是在循环中使用的,您能否提供完整的代码清单,以便我们确切知道您的意思?
  • 代码应该会产生错误,因为您不能将非常量分配给 const。 (我假设data.amount 不是常量。)

标签: c# variables constants


【解决方案1】:

与常量变量相关的规则很少。

  1. 常量变量必须在声明时初始化。
  2. 常量变量的值不能改变。

但是,如果您在声明时不确定常量的值,那么您可以使用只读。

  1. 只读变量只能赋值一次。
  2. 分配的值无法更改。

由于常量变量必须在声明时初始化,并且您不能用变量初始化它,因为常量变量是在编译时初始化的。所以你可以在 for 循环中写一个常量变量,但它只会在编译时被赋值。

【讨论】:

  • 使用const type检查IL帖子,你会看到它在编译时被值替换,代码中没有变量来处理/更改值@运行时
猜你喜欢
  • 2015-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-11
  • 1970-01-01
  • 2015-10-01
  • 1970-01-01
  • 2010-12-04
相关资源
最近更新 更多