如何使开关大小写语法更小

本文关键字:语法 大小写 何使 开关 | 更新日期: 2023-09-27 18:37:25

我正在制作简单的名称生成器,它的工作原理是这样的:我得到了一个带有名称值的数组,它是 4 个元素,我使用随机类从数组中选择特定名称,接下来我使用 switch case 来验证选择哪一个并将其打印到控制台。

但是,它只有 4 个元素

,但是当我尝试制作 100 个元素 4示例时怎么办?我试图在 for 循环中切换大小写以增加一种情况下的所有内容,但事实证明案例索引应该是 const。那么,有没有其他可能的方法可以使开关盒更灵活、更小?

下面是用于穿插 http://pastebin.com/bbCxLtRq 的代码

如何使开关大小写语法更小

不需要

switch

if (NameIndex >= 0 && NameIndex <= 3)
{
    return Name[NameIndex];
}
return null;

使用更复杂的示例,您可以使用return来摆脱break

而不是

    switch (NameIndex)
        {
            case 0:
                name = Name[0];
            break;
            case 1:
                name = Name[1];
            break;
            case 2:
                name = Name[2];
            break;
            case 3:
                name = Name[3];
            break;
        }
        return name;

    switch (NameIndex)
        {
            case 0:
                return Name[0];
            case 1:
                return Name[1];
            case 2:
                return Name[2];
            case 3:
                return Name[3];
        }
    return null;

如注释中所述,无需Switch语句来实现此目标 - 请参阅以下代码片段作为示例:

public class Generate
{
    static string[] Name = new string[] { "Mariusz", "Janusz", "Bogdan", "Zbigniew" };
    static Random random = new Random();
    public static string NameGen()
    {
      return Name[(int) random.Next(3)];
    }
}

如果您确实需要使用Switch语句(出于某种原因,可能只是出于教学目的),那么有一种方法可以简化它,如以下代码片段所示:

switch (NameIndex)
        {
            case 0:
            case 1:
            case 2:
            case 3:
                return Name[NameIndex];
        }

希望这可能会有所帮助

使方法独立于固定长度:

public static string NameGen()
{
    int index = random.Next(Names.Length);
    return Names[index];
}
public static string SurnameGen()
{
    int index = random.Next(Surnames.Length);
    return Surnames[index];
}