C#中的常量
发布日期:2021-06-30 19:57:07 浏览次数:2 分类:技术文章

本文共 1113 字,大约阅读时间需要 3 分钟。

一:常量与变量

——变量:是指在程序的运行过程中随时可以发生变化的量

——常量:可以当做常规的变量,只是他们的值在定义后不能再被修改,常量可以是任何的基本数据类型,比如整型,浮点型,字符串型,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声明的时候可以赋值也可以不赋值,也可以在类的构造函数中进行赋值(如果是静态动态常量static readonly则可以在静态构造函数中初始化)

——const只能声明不用new初始化的值类型(int,double),所以数组、结构体类型不能声明为const,但是string可以,因为.net框架内部对string进行了特殊处理,使string具有恒定性,使它是只读的
readonly可以声明任何一个类型

——const是隐式static,它默认就是static,所以不能使用static关键字
readonly是显式static,可以声明static也可以不声明static
所以const声明的常量只能通过类去访问,readonly声明的常量访问方式需要看是否有static关键字

——const(静态常量compile-time constants)是编译时确定的,当程序编译时将所有引用const常量的地方替换为声明常量时的数值,类似于C中的#define宏(例如定义一个const int a=10,int b=20,在一个方法中使用a*b等同于10*b)
readonly(动态常量runtime constants)是在运行时才获取常量的值,并赋值到每个引用的位置

——const可以声明类中的字段或函数体内的局部变量,readonly只可以声明类中的字段

——const声明的常量不需要分配内存,无内存开销,且在内存中无存储位置,但是限制多,不灵活
readonly声明的常量灵活,但是性能略低,动态分配内存,有内存开销,且在内存在有存储位置

转载地址:https://liuhaowen.blog.csdn.net/article/details/104069404 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:C#中的静态变量与非静态变量
下一篇:Unity中的UGUI事件系统

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年04月25日 17时10分18秒