C#中的常量

一:简介

——常量可以当做常规的变量,只是他们的值在定义后不能再被修改
——常量可以是任何的基本数据类型,比如整型,浮点型,字符串型,Class等


二:两种写法

——静态常量(const)

using UnityEngine;

public class Test : MonoBehaviour
{
    public const float PI = 3.1415f;
    public const string tag="Player";
}

——动态常量(readonly)又称为只读变量

using System;

public class Test
{
    private  readonly float PI = 2.5f;

    public Test()
    {
        PI = 3.14f;
    }
}

静态常量和动态常量的区别:
——const声明的同时必须要赋值,readonly声明的时候可以赋值也可以不赋值,也可以在类的构造函数中进行赋值


 

——const只能声明.NET框架中的类型(int,float,string,enum,null等),数组、结构体类型不能声明为const(因为数组初始化的时候需要用new关键字)。readonly可以声明任何一个类型

 

——const是隐式static默认就是static,不能使用static关键字。readonly是显式static,可以声明static也可以不声明static

 

——const(静态常量compile-time constants)是编译时确定的,当程序编译时将所有引用const常量的地方替换为声明常量时的数值。readonly(动态常量runtime constants)是在运行时才获取常量的值,并赋值到每个引用的位置
     
 

——const可以声明类中的字段或函数体内的局部变量,readonly只可以声明类中的字段
——const声明的常量只能通过类去访问,readonly声明的常量需要看是否有static关键字
——const声明的常量不需要分配内存无内存开销,在内存中无存储位置,但是限制多,不灵活
readonly声明的常量灵活,方便,但是性能略低,且有内存开销,动态分配内存,在内存在有存储位置

发布了130 篇原创文章 · 获赞 280 · 访问量 25万+

猜你喜欢

转载自blog.csdn.net/LLLLL__/article/details/104069404
今日推荐