我们在编写程序时使用命令 constant 或 readonly 来应用或表示常量。
但是,它们有何不同?如果它们都具有分配常量的相同任务,那么以不同方式使用它们的目的是什么? 所以,为了清楚起见,我们将讨论两者之间的差异。
关键精华
- 常量是不可变变量,其值在声明后不能更改,而只读变量仅初始化一次,并且在初始赋值后不能修改。
- 常量在编译时求值,而只读变量在运行时求值。
- 常量只支持值类型,而只读变量可以保存值和引用类型。
常量与只读
常量变量在编译时求值,在运行时不能更改,用于定义不希望更改的值。 Readonly 是面向对象编程语言中使用的关键字,用于声明变量只能赋值一次,并且可以在运行时求值。
尝试定义常量时,使用 constant 关键字。 区别在于它是在编译过程中编写的。 因此,它是一个编译时常量。
结果,您编写了程序,编译器将其转换为 IL 代码。 中间语言代码是 IL 代码。 您要定义的常量在转换进行时直接存在。
结果,常量将始终保持不变。
另一方面,如果程序是只读的,则必须先编写它,而不需要直接初始化它。 您可以选择采用两条路径之一。
您可以在声明 readonly 关键字时初始化它,也可以在类的构造函数中初始化它。 声明 或构造函数将导致错误。
对比表
比较参数 | 常数 | 只读 |
---|---|---|
定义 | 要创建只读字段,您需要使用 readonly 关键字。 | 要创建只读字段,您需要使用只读关键字。 |
类 | 它被称为编译时常量 | 它被称为运行时间常数 |
它可以在方法中定义吗? | Yes | 没有 |
申报后可以更改吗? | 没有 | Yes |
你能用静态修饰符吗? | 没有 | Yes |
什么是常数?
在开发计算机程序时,必须遵循一些准则。 有很多关键字组合在一起,告诉我们如何以适当的方法运行程序。
因此,在确切时间定义特定术语之前,了解该短语的真正重要性至关重要。
并且有多种术语在不同的上下文中使用时似乎具有相同的表观含义。 我们将在本文中讨论一个这样的时间,constant 关键字。
了解常量关键字和只读关键字之间的区别对于程序员区分它们至关重要。
因为该值必须在构建时分配,所以常量关键字称为编译时常量。
一旦你分配了一个值,你就不能通过编程再次改变它; 否则,将出现错误。 交易一旦分配就无法修改。
默认情况下,常量是静态的。 有几种不同类型的数字和字符常量。 为避免错误,必须在编译时分配值。
您不能将常量修饰符与常量关键字一起使用。 continual 关键字也用于绝对常量或作为通用常量的值。
什么是只读?
在这里,我们专注于常量关键字和只读关键字之间的关键区别。 两人都感到困惑,因为他们认为他们的任务是在程序中分配一个常量。
但是,它们并不相同,并且以不同的方式使用。 constant 关键字及其用法已经讨论过了。 以下是一些区分两者的方法。
说到计算机语言中的只读关键字,有四种场景可以使用只读关键字。
与常量关键字不同,只读关键字经常被称为运行时常量,因为它可以在运行时声明。
该值可以在函数构造函数中设置,并且仍然在同一个类中。 Readonly 关键字与常量关键字不同,可以在声明字段或函数构造函数中多次赋值。
如果函数构造函数已经存在,则不能分配只读字段。
因此,只读值类型字段是不可变的; 另一方面,引用类型应该包含与只读命令的主题兼容的数据。
然后有只读的 结构,只读实例成员,以及一个 ref 只读方法返回。 每个领域都有不同的意义。 总的来说,要分配这些类型的常量,可以使用只读关键字。
常量和只读之间的主要区别
- 如果要创建常量字段,请使用 continuous 关键字,而如果要创建只读字段,请使用 readonly 关键字。
- 编译时常量称为常量,而只读常量称为运行时常量。
- 方法可以指定常量,但只读方法不能。
- 常量一旦声明,就不能更改,而只读可以多次声明。
- 静态修饰符不能应用于常量,尽管它们可以应用于只读变量。
最后更新时间:11 年 2023 月 XNUMX 日
Sandeep Bhandari 拥有塔帕尔大学计算机工程学士学位(2006 年)。 他在技术领域拥有 20 年的经验。 他对各种技术领域都有浓厚的兴趣,包括数据库系统、计算机网络和编程。 你可以在他的网站上阅读更多关于他的信息 生物页面.
我可以理解这对于初学者程序员来说是多么令人困惑。
这是一个非常枯燥的话题,但以一种引人入胜且清晰的方式呈现。
在这一点上我不得不不同意你的观点,我觉得这很乏味。
同意!我本来以为会很无聊,但这是一本很棒的书。
比较表非常有帮助,总体来说是一篇很棒的文章。
有用的解释,谢谢!
了解两者之间的差异和相似之处非常有趣。
信息量很大,但仍然不确定何时使用它们。有人可以澄清一下吗?
当然,我很乐意提供帮助!