如何使用“ 9HM.A2”声明锯齿状数组

时间:2019-04-04 08:55:36

标签: c# unity3d

我需要这样做:

 string[][] anordinaryname = new string[][]
{
    new string[] {""},
    new string[] {""},
    new string[] {""},
    new string[] {""},
};

此:

 string[][] 9HM.A2 = new string[][]
{
    new string[] {""},
    new string[] {""},
    new string[] {""},
    new string[] {""},
};

我需要将其格式化为完全一样的格式,但是开头的9和。在中间引起问题。有解决办法吗?

这样做的原因是我正在为学校制定时间表。这是一个时期,因此我需要用户将输入字段输入“ 9HM.A2”,然后转到该数组以获取信息,因为这是在给定时间表上显示的方式。这是一个学校项目。

2 个答案:

答案 0 :(得分:4)

否,您不需要这样命名变量。变量名是开发人员的,而不是最终用户的。

如果您需要基于字符串查找数据,请使用字典:

var timeTable = new Dictionary<string, string[][]>
{
    { 
        "9HM.A2", new string[][]
        {
            new string[] {""},
            new string[] {""},
            new string[] {""},
            new string[] {""},
        }
    },
    { 
        "8XX.Z3", new string[][]
        {
            new string[] {""},
            new string[] {""},
            new string[] {""},
            new string[] {""},
        }
    },

}

然后您可以通过字符串获取值:

if (timeTable.TryGetValue("9HM.A2", out var userTimeTable))
{
    // use userTimeTable
}

您应该重新考虑锯齿状的数组是否适合您的需求;您可能宁愿创建一个类来保存该数据。

答案 1 :(得分:2)

您根本不能使用此变量名,句号,故事结尾。让我们访问文档

Identifier names

  

标识符是您为类型(类,接口,   结构,委托或枚举),成员,变量或命名空间。 有效   标识符必须遵循以下规则:

     
      
  • 标识符必须以字母或_ 开头。
  •   
  • 标识符可以包含 Unicode字母字符十进制数字字符 Unicode连接字符 Unicode   组合字符或Unicode格式的字符
  •   

如您所见,句号/句号不在列表中。进而使您的变量名9HM.A2无效

9HM.A2重命名为_9HM_A2_9HMA2(对于有趣级别100)