zoukankan      html  css  js  c++  java
  • 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进行设置;动态常量没有类型的限制,可以定义任何类型的常量。

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

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

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

  • 相关阅读:
    angularjs学习笔记一之显示数据,修改数据
    收藏/不再提醒
    CSS3动画
    Content-Type
    键盘快捷键
    url、href、src 详解
    关于docnment.write() 会清空原来的内容
    jq事件注意点
    echart的自适应
    键盘事件
  • 原文地址:https://www.cnblogs.com/melao2006/p/4239299.html
Copyright © 2011-2022 走看看