readonly 允许把一个字段设置成常量,但可以执行一些运算,可以确定它的初始值。
因为 readonly 是在计算时执行的,当然它可以用某些变量初始化。
readonly 是实例成员,所以不同的实例可以有不同的常量值,这使readonly更灵活。
readonly 关键字与 const 关键字不同。
1. const 字段只能在该字段的声明中初始化。
readonly 字段可以在声明或构造函数中初始化。因此,根据所使用的构造函数,readonly 字段可能具有不同的值。
2. const 字段是编译时常数,而 readonly 字段可用于运行时常数。
3. const 默认就是静态的,而 readonly 如果设置成静态的就必须显示声明。
4.const 对于引用类型的常数,可能的值只能是 string 和 null。
readonly可以是任何类型
* 需要注意的一个问题是:
对于一个 readonly 的 Reference 类型,只是被限定不能进行赋值(写)操作而已。而对其成员的读写仍然是不受限制的。
public static readonly Class1 my = new Class1();
…
my.SomeProperty = 10; //正常
my = new Class1(); //出错,该对象是只读的
但是,如果上例中的 Class1 不是一个 Class 而是一个 struct,那么后面的两个语句就都会出错。
static readonly:
Java 中 static 是当载入一个类时执行一次的。
C#中是怎么执行的,我没有查到。很奇怪几乎每本java的书都会说static的问题,C#的往往只说怎么用,但是应该是在main函数调用之前初始化,所以static readonly也是运行时的,可以用变量付值,如:
private static readonly string path = System.Windows.Forms.Application.StartupPath + “aaa”;
新闻来自: 新客网(www.xker.com) 详文参考:http://www.xker.com/page/e2007/0116/9667.html
分享到:
相关推荐
在C#编程语言中,`const`和`readonly`关键字都是用来声明不可变变量的,但它们之间存在一些重要的区别,这些区别主要体现在初始化、作用域、存储位置以及使用场景等方面。 ### 1. 初始化 - **const**:`const`...
从上面的例子可以看出,const和readonly的区别在于,const关键字定义的常量是隐式静态的,所有对象共享同一个值,而readonly关键字定义的常量可以在不同的对象中具有不同的值。 在使用const和readonly关键字时,...
在C#编程语言中,`readonly`和`const`这两个关键字都用于定义只读字段,但它们之间存在一些重要的区别。理解这些区别有助于更好地设计和实现软件系统,尤其是在需要创建不可变数据或常量时。 #### 二、`const`...
C# 中的 const 和 readonly 关键字都可以用来定义常量,但它们之间存在一些重要的区别。这些区别主要体现在声明方式、初始化时机、存储位置、可修改性、类型限制以及在系统开发中的使用策略上。 首先,const 关键字...
在C#编程语言中,`const` 和 `readonly` 关键字都用于声明常量,但它们之间存在一些显著的区别。常量是不可更改的值,一旦被赋值后就不能再次修改。 首先,`const` 关键字用于声明编译时常量。这意味着,任何用 `...
### .NET中const与readonly的使用详解 #### const关键字 在.NET框架下的C#语言中,`const`关键字被用于定义常量。这些常量在编译时即被赋予一个固定的值,并且在后续程序执行过程中无法改变。下面将详细介绍`const...
const 的概念就是一个包含不能修改的值的变量。常数表达式是在编译时可被完全计算的表达式。因此不能从一个变量中提取的值来初始化常量。如果 const int a = b+1;...1. const 字段只能在该字段的声明中
在C#编程语言中,`const`和`readonly`是两个重要的修饰符,它们都用于声明不可修改的变量,但它们之间存在一些关键的区别。本文将详细讲解这两个修饰符的用法和应用场景。 首先,我们来看`const`修饰符。`const`...
在C#编程语言中,`const`和`readonly`都是用来定义不可变的变量,但它们之间存在着重要的差异。理解这些差异有助于编写更加高效和安全的代码。 首先,`const`关键字用于声明编译时常量。这意味着,一旦声明了一个`...
在C#编程语言中,`const`和`readonly`关键字都是用来声明不可变的变量,但它们之间存在着一些重要的区别。本文将深入探讨这两个关键字,帮助开发者理解和掌握它们的使用场景以及背后的原理。 首先,`const`关键字...
在C#编程语言中,`const`和`readonly`关键字都是用来声明常量的,但它们之间存在着重要的差异。理解这些差异对于编写高效且维护性强的代码至关重要。 首先,`const`关键字用于声明静态常量。这意味着在声明常量时...
本文将深入探讨Java中的`final`关键字以及C#中的`const`和`readonly`关键字,了解它们如何分别实现编译时常量和运行时不可变性。 ### Java中的`final`关键字 #### 1. 编译器常量 在Java中,`final`关键字可以用来...
总的来说,`const`关键字在C#中提供了一种声明不可变值的方法,以提高代码的可读性和可靠性。正确理解和使用`const`和`readonly`可以帮助编写更安全、高效的代码。在设计软件时,明智地选择何时使用常量和何时使用...