• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C#常量

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

常量就是其值固定不变的量,值类型或引用类型都可以作为常量。在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进行设置;动态常量没有类型的限制,可以定义任何类型的常量。

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

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

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

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
多重影分身——C#中多线程的使用一(基础)发布时间:2022-07-13
下一篇:
c#调用C++dll传入传出类型对应说明发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap