常量与字段

分类索引:C# 语言和运行时剖析--前言

 

常量


  1. 常量是一个特殊符号,标明一个从不变化的值。
  2. 用const定义常量
  3. 只能使用基元类型定义常量。
  4. 因为常量的值从不变化,所以可以将常量看做是类型定义的一部分,跟类型的实例没有关系。

 

字段


字段是类型的一种数据成员,其中容纳了一个值类型的实例或者对一个引用类型的引用。

字段一般应该设计为private私有变量。

 

修饰关键字

说明

备注

static静态字段是类型状态的一部分,跟对象状态无关静态字段只能在静态方法或者静态类构造器中调用。
默认实例对象与类型的一个实例关联 
readonly只读字段,只能由构造器方法中的代码写入readonly字段跟常量不同,可以在构造实例的时候被初始化,并且不同实例可以持有不同值的字段。
volatile表示字段可能被多个并发执行线程修改一般这种字段应该定义基元类型,而不应该使用引用类型和复杂的值类型,避免引起数据损坏

转载于:https://www.cnblogs.com/SimonJiang/archive/2012/11/25/2787716.html

C#中,常量字段(Constant Field)是一种特殊的字段,其值在编译时就已经确定,并且在程序运行期间不能更改。常量字段通常用于表示不会变化的固定值,例如数学常数、系统配置参数等。 ### 常量字段的定义 常量字段使用 `const` 关键字进行声明,并且必须在声明时赋值。常量字段的类型可以是内置的数值类型(如 `int`, `double`)、字符串类型 `string`,或者枚举类型等。常量字段的值必须是一个编译时常量表达式。 示例: ```csharp public class Constants { public const int MaxValue = 100; public const double Pi = 3.14159; public const string ApplicationName = "MyApp"; } ``` ### 常量字段的使用 常量字段的访问方式静态字段类似,可以通过类名直接访问,而不需要创建类的实例。 示例: ```csharp Console.WriteLine(Constants.MaxValue); // 输出: 100 Console.WriteLine(Constants.Pi); // 输出: 3.14159 Console.WriteLine(Constants.ApplicationName); // 输出: MyApp ``` 由于常量字段的值在编译时就已经确定,因此它们的行为类似于静态字段,但不需要使用 `static` 关键字[^1]。 ### 常量字段静态字段的区别 - **常量字段**(`const`):值在编译时确定,不能更改,隐式静态。 - **静态字段**(`static`):值在运行时确定,可以通过静态构造函数或直接赋值进行初始化,可以更改(除非使用 `readonly` 修饰符)。 ### 常量字段的适用场景 - 需要表示在程序运行期间始终不变的值。 - 多个类或模块需要共享的固定值。 - 提高代码可读性,例如定义魔法数字或字符串的替代常量。 ### 注意事项 - 常量字段的值必须是编译时常量表达式,不能依赖运行时才能确定的值。 - 常量字段一旦定义,在程序的任何地方都不能更改其值。 - 常量字段适用于简单的类型,如 `int`, `double`, `string` 等,不适用于复杂对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值