C#中用const和readonly声明常量及用法

前言

在C#编程语言中,常量是一种特殊的变量。常量被赋值后,其值在程序执行期间就不能对其进行修改。常量也是我们编写程序时经常会使用。在C#语言中,可使用const、readonly 来声明,下面将介绍其用法和区别。

用法

1、const 关键字

使用 const 来声明一个常量字段或常量局部变量,且是在编译时进行解析。必须满足下面的一些规则:

a、必须在声明时初始化;

b、值在编译时必须是可确定的;

下面是声明常量字段示例:

namespace Fountain.WinConsole.ConstantDemo{    public class Calendar    {        /// <summary>        /// 一年的月数 声明是常量字段        /// </summary>        public const int MONTHS = 12;        /// <summary>        /// 一周天数 声明是常量字段        /// </summary>        public const int WEEK_DAYS = 7;    }}//使用常量字段using System;namespace Fountain.WinConsole.ConstantDemo{    internal class Program    {        static void Main(string[] args)        {            // 输出结果            Console.WriteLine(string.Format("一年共{0}个月", Calendar.MONTHS));            //             Console.ReadLine();        }    }}

下面是声明局部常量变量的示例:​​​​​​

using System;namespace Fountain.WinConsole.ConstantDemo{    internal class Program    {        static void Main(string[] args)        {            // 声明常量局部变量            const int days = 365;            // 输出结果            Console.WriteLine(string.Format("一年有{0}天", days));            //            Console.ReadLine();        }    }}
2、readonly 关键字

使用 readonly 也可以声明一个常量字段,但它只能在类级别声明,而不能在方法体中声明。对变量的初始化也只能在声明时或构造函数方法内进行。使用时:类实例.常量字段。我们也可以通过static关键字的方式类声明一个静态常量字段(此方式初始化只能在声明时)。使用时即可以此格式:类.静态常量字段

下面是定义类的常量字段示例:​​​​​​​

namespace Fountain.WinConsole.ConstantDemo{    public class Calendar    {        /// <summary>        /// 一年的周数        /// </summary>        public readonly int YEAR_WEEKS;        /// <summary>        /// 类的构造方法        /// </summary>                public Calendar()         {            // 对常量字段赋值            this.YEAR_WEEKS = 54;        }    }}// 调用using System;namespace Fountain.WinConsole.ConstantDemo{    internal class Program    {        static void Main(string[] args)        {            Calendar calendar=new Calendar();            // 在此赋值则会有异常            // calendar.YEAR_WEEKS = 100;            Console.WriteLine(string.Format("一年共{0}周", calendar.YEAR_WEEKS));            //            Console.ReadLine();        }    }}

下面是声明类的静态常量字段示例:​​​​​​​

namespace Fountain.WinConsole.ConstantDemo{    public class Calendar    {        /// <summary>        /// 一年的周数        /// </summary>        public readonly static int YEAR_WEEKS=54;        /// <summary>        /// 类的构造方法        /// </summary>        public Calendar()         {            // 在此赋值报异常            //this.YEAR_WEEKS = 54;        }    }}// 调用 using System;namespace Fountain.WinConsole.ConstantDemo{    internal class Program    {        static void Main(string[] args)        {            //输出结果            Console.WriteLine(string.Format("一年共{0}周", Calendar.YEAR_WEEKS));            //             Console.ReadLine();        }    }}
3、二者区别

const 与 readonly 的区别大概有以下三点:

a、const 只能在声明时初始化;readonly 可在声明时或构造函数内。

b、const 是编译时常量;readonly 是运行时常量。

c、const 是静态;readonly 不是静态的,但可使用static声明为静态。

小结

以上是使用 const 与 readonly 声明常量的内容,希望以上内容能为大家带来一些帮助或参考价值。如有不到之处,请多多包涵。

想了解更多游戏开发知识,可以扫描下方二维码,免费领取游戏开发4天训练营课程

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值