C#常量

常量就是其值固定不变的量,值类型或引用类型都可以作为常量。在C#中,常量可以分为静态常量和动态常量。

一、静态常量

声明静态常量的语法格式如下:

修饰符 const 数据类型 常量名 = 常量值;?修饰符:可以是public、protected、internal、private等。

?const:声明静态常量的关键字。

?数据类型:可以是整型(int)、浮点型(double)、枚举或字符串。
如:

public const int a = 1000;

静态常量在编译时会将其替换为所对应的值。用const定义的常量,对于所有类的对象而言都是一样的,因此需要像访问静态成员那样去访问const定义的常量。

也可以使用一条语句同时声明多个常量,比如:

class classTest
{
    public const double X = 1.0;
    public const double Y = 2.0;
    public const double Z = 3.0;
}

可以写成:
 
class classTest2
{
    public const double X = 1.0, Y = 2.0, Z = 3.0;
}

在classTest2中声明的多个常量都写在一条语句中。

二、动态常量

声明动态常量的例子如下:

public static readonly classTest classTest1 = new classTest();

声明好动态常量以后,系统会为readonly所定义的动态常量分配内存空间,就像类的其它成员一样拥有独立的空间。

const和readonly的值一旦初始化则都不再可以改写;
const只能在声明时初始化;readonly既可以在声明时初始化也可以在构造器中初始化;
const隐含static,不可以再写static const;readonly则不默认static,如需要可以写static readonly;
const是编译期静态解析的常量(因此其表达式必须在编译时就可以求值);readonly则是运行期动态解析的常量;
const既可用来修饰类中的成员,也可修饰函数体内的局部变量;readonly只可以用于修饰类中的成员.

 

三、静态常量与动态常量的区别

?静态常量在声明时要设置常量值;动态常量在声明时可以设置常量值,也可以不设置常量值,也可以在类的构造函数中设置常量值。

?静态常量的类型必须是值类型(请阅读C#数据类型),其值不能通过new进行设置;动态常量没有类型的限制,可以定义任何类型的常量。

?静态常量对于类的所有对象来说,常量的值是相同的;动态常量对于类的所有对象来说,常量的值可以是不同的。

?静态常量不分配内存;动态常量要分配内存,以便保存常量实体。

?静态常量性能稍高,但是限制多,不灵活;动态常量性能稍低,但是灵活、方便。

 

转载于:https://www.cnblogs.com/melao2006/p/4239299.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值