【C#】C#:“指派给常量数组的必须是常量”

推荐阅读

大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。

一、前言

记录一个有意思的代码片段。

首先,复习一下常量。

因为此篇文章不是为了专门讲解常量的,就简单的介绍一下常量吧:

常量组成:

C#中的常量是由三部分组成的,分贝是const、数据类型、变量名。

  • 1、const:是C#中用来定义常量的关键字,不能忽略。
  • 2、数据类型:指定一种类型的数据,如整数、字符串等。
  • 3、变量名:自定义命名。

比如:

const int sum = 0;

常量是什么
常量是指在程序运行过程中,其值不会发生改变,常量与变量唯一的区别就是常量的值不可以改变,变量的值可以改变。

为什么用常量
由于常量的值在程序运行过程中是不可以改变的,所以可以用来存储一些固定的值,比如圆周率,折扣率等。

比如:

扫描二维码关注公众号,回复: 16472111 查看本文章
const float PI = 3.14159265358979F;

于是,博主写代码的时候想到,那能不能定义一个常量数组呢,里面存放常量呢。。。

二、正文

于是有了这段代码:

using UnityEngine;

public class Test01 : MonoBehaviour
{
    
    
    const int[] sumAry = new int[1] {
    
     1 };

    void Start()
    {
    
    
        
    }
}

但是这么写,报错了,是很严重的无法通过编译的错误:
在这里插入图片描述
这是因为const关键字用于编译已知的值,但是数组在编译时不会初始化,因此在编译时不知道数组的值,因此这么写是无解的。

但是,可以使用readonly关键字来实现相同效果,而且还不会出现错误。

readonly关键字用于指定初始化后不能修改变量的值,下面的代码示例向我们展示了如何在C#中使用readonly关键字:

using System.Runtime.CompilerServices;
using UnityEngine;

public class Test01 : MonoBehaviour
{
    
    
    public static readonly string[] Values = {
    
     "Value1", "Value2", "Value3", "Value4" };

    void Start()
    {
    
    
        Debug.Log(Values[0]);
    }
}

三、后记

如果觉得本篇文章有用别忘了点个关注,关注不迷路,持续分享更多Unity干货文章。


你的点赞就是对博主的支持,有问题记得留言:

博主主页有联系方式。

博主还有跟多宝藏文章等待你的发掘哦:

专栏 方向 简介
Unity3D开发小游戏 小游戏开发教程 分享一些使用Unity3D引擎开发的小游戏,分享一些制作小游戏的教程。
Unity3D从入门到进阶 入门 从自学Unity中获取灵感,总结从零开始学习Unity的路线,有C#和Unity的知识。
Unity3D之UGUI UGUI Unity的UI系统UGUI全解析,从UGUI的基础控件开始讲起,然后将UGUI的原理,UGUI的使用全面教学。
Unity3D之读取数据 文件读取 使用Unity3D读取txt文档、json文档、xml文档、csv文档、Excel文档。
Unity3D之数据集合 数据集合 数组集合:数组、List、字典、堆栈、链表等数据集合知识分享。
Unity3D之VR/AR(虚拟仿真)开发 虚拟仿真 总结博主工作常见的虚拟仿真需求进行案例讲解。
Unity3D之插件 插件 主要分享在Unity开发中用到的一些插件使用方法,插件介绍等
Unity3D之日常开发 日常记录 主要是博主日常开发中用到的,用到的方法技巧,开发思路,代码分享等
Unity3D之日常BUG 日常记录 记录在使用Unity3D编辑器开发项目过程中,遇到的BUG和坑,让后来人可以有些参考。

猜你喜欢

转载自blog.csdn.net/q764424567/article/details/132560481