【发布时间】:2021-11-12 11:34:20
【问题描述】:
我创建了枚举并尝试使用 for-each 循环遍历它,并使用 switch case 查找不同的情况并获取使用的潜水值。 我得到的错误是 无法将 type'console5.typeOfDevice' 隐式转换为 'string'
enum typeOfDevice
{
iphone=99,
android=59,
tablet=49
}
var usedDevice = Enum.GetNames(typeof(typeOfDevice));
foreach (string used in usedDevice)
{
switch (used)
{
case usedDevice.iphone: //gets error here
Console.Write($"enter how many time you used Iphone");
var input = Console.ReadLine();
break;
case usedDevice.android:
Console.Write($"enter how many time you used Android");
var input = Console.ReadLine();
break;
case usedDevice.tablet:
Console.Write($"enter how many time you used Tablet");
var input = Console.ReadLine();
break;
default:
break;
}
}
【问题讨论】:
-
问题/问题是什么?
-
无法将 type'console5.typeOfDevice' 隐式转换为 'string' 得到此错误
-
你需要使用
Enum.GetValues而不是Enum.GetNames,但是在这里使用枚举似乎没有必要。 -
used 是一个字符串,因此您需要针对字符串类型对其进行测试,例如:case "iphone":
标签: c# foreach enums switch-statement