如何使开关大小写语法更小
本文关键字:语法 大小写 何使 开关 | 更新日期: 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];
}