常量与只读:区别与比较

我们在编写程序时使用命令 constant 或 readonly 来应用或表示常量。

但是,它们有何不同?如果它们都具有分配常量的相同任务,那么以不同方式使用它们的目的是什么? 所以,为了清楚起见,我们将讨论两者之间的差异。

关键精华

  1. 常量是不可变变量,其值在声明后不能更改,而只读变量仅初始化一次,并且在初始赋值后不能修改。
  2. 常量在编译时求值,而只读变量在运行时求值。
  3. 常量只支持值类型,而只读变量可以保存值和引用类型。

常量与只读

常量变量在编译时求值,在运行时不能更改,用于定义不希望更改的值。 Readonly 是面向对象编程语言中使用的关键字,用于声明变量只能赋值一次,并且可以在运行时求值。

常量与只读

尝试定义常量时,使用 constant 关键字。 区别在于它是在编译过程中编写的。 因此,它是一个编译时常量。

结果,您编写了程序,编译器将其转换为 IL 代码。 中间语言代码是 IL 代码。 您要定义的常量在转换进行时直接存在。

结果,常量将始终保持不变。

另一方面,如果程序是只读的,则必须先编写它,而不需要直接初始化它。 您可以选择采用两条路径之一。

您可以在声明 readonly 关键字时初始化它,也可以在类的构造函数中初始化它。 声明 或构造函数将导致错误。

对比表

比较参数 常数 只读 
定义 要创建只读字段,您需要使用 readonly 关键字。要创建只读字段,您需要使用只读关键字。
类 它被称为编译时常量它被称为运行时间常数
它可以在方法中定义吗?Yes 没有 
申报后可以更改吗?没有 Yes 
你能用静态修饰符吗?没有 Yes 

什么是常数?

在开发计算机程序时,必须遵循一些准则。 有很多关键字组合在一起,告诉我们如何以适当的方法运行程序。

另请参阅:  戴尔游戏笔记本电脑与惠普游戏笔记本电脑:区别与比较

因此,在确切时间定义特定术语之前,了解该短语的真正重要性至关重要。

并且有多种术语在不同的上下文中使用时似乎具有相同的表观含义。 我们将在本文中讨论一个这样的时间,constant 关键字。

了解常量关键字和只读关键字之间的区别对于程序员区分它们至关重要。

因为该值必须在构建时分配,所以常量关键字称为编译时常量。

一旦你分配了一个值,你就不能通过编程再次改变它; 否则,将出现错误。 交易一旦分配就无法修改。

默认情况下,常量是静态的。 有几种不同类型的数字和字符常量。 为避免错误,必须在编译时分配值。

您不能将常量修饰符与常量关键字一起使用。 continual 关键字也用于绝对常量或作为通用常量的值。

什么是只读?

在这里,我们专注于常量关键字和只读关键字之间的关键区别。 两人都感到困惑,因为他们认为他们的任务是在程序中分配一个常量。

但是,它们并不相同,并且以不同的方式使用。 constant 关键字及其用法已经讨论过了。 以下是一些区分两者的方法。

说到计算机语言中的只读关键字,有四种场景可以使用只读关键字。

与常量关键字不同,只读关键字经常被称为运行时常量,因为它可以在运行时声明。

另请参阅:  物联网与区块链:差异与比较

该值可以在函数构造函数中设置,并且仍然在同一个类中。 Readonly 关键字与常量关键字不同,可以在声明字段或函数构造函数中多次赋值。

如果函数构造函数已经存在,则不能分配只读字段。

因此,只读值类型字段是不可变的; 另一方面,引用类型应该包含与只读命令的主题兼容的数据。

然后有只读的 结构,只读实例成员,以及一个 ref 只读方法返回。 每个领域都有不同的意义。 总的来说,要分配这些类型的常量,可以使用只读关键字。

常量和只读之间的主要区别

  1. 如果要创建常量字段,请使用 continuous 关键字,而如果要创建只读字段,请使用 readonly 关键字。
  2. 编译时常量称为常量,而只读常量称为运行时常量。
  3. 方法可以指定常量,但只读方法不能。
  4. 常量一旦声明,就不能更改,而只读可以多次声明。
  5. 静态修饰符不能应用于常量,尽管它们可以应用于只读变量。
参考资料
  1. https://dl.acm.org/doi/abs/10.1145/1478786.1478840

最后更新时间:11 年 2023 月 XNUMX 日

点1
一个请求?

我付出了很多努力来写这篇博文,为您提供价值。 如果您考虑在社交媒体上或与您的朋友/家人分享,这对我很有帮助。 分享是♥️

关于“常量与只读:差异与比较”的 9 个思考

发表评论

想保存这篇文章以备后用? 点击右下角的心形收藏到你自己的文章箱!