在Java中,
- 由
final
修改的引用类型的变量不能更改为引用任何其他对象 - 被
final
修改的原始类型的变量不能更改为具有不同的值
我在 Does `final` means a field is not mutable? 询问过
C#中的readonly
是否也同样区分值类型和引用类型的变量?
谢谢。
最佳答案
当用作变量的修饰符时,C# 中的 readonly
等同于 Java 的 final
因此它们对于值类型和引用类型的行为方式完全相同他们各自的语言。
Java 的“最终”行为
你只能初始化一个 final 变量一次,而且只能一次。这与对象状态是否可以修改无关。
C#“只读”行为
readonly
关键字是一个只能在字段上使用的修饰符。给定一个用 readonly
修饰符声明的变量,对声明引入的字段的任何赋值只能作为声明的一部分或在同一类的构造函数中发生。
Readonly
修饰符防止字段被更改。因此,以后任何更改它们的尝试都是不允许的。
关于java - C#中的 `readonly`是否也和Java中的 `final`一样区分值类型和引用类型的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47042860/