我正在做一个项目,我需要在设备类型之间进行切换。我想像在 C/C++ 中一样定义它们。我发现这在 C# 中是不可能的。我正在制作一些实验代码来了解它是如何工作的,但我被困在一件事上。我已经在下面的代码中指出了这一点。请看一下 :)。我希望我的代码的想法很清楚,我应该如何更改它以使其工作?
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
productnames pn = new productnames();
string str = textBox1.Text;
switch (pn) // I am getting an red line under pn; which says: A switch expression or case label must be a bool, char, string, integral, enum or corresponding nullable type
{
case DEVICE1:
label1.Text = str+"CASE1";
break;
case DEVICE2:
label1.Text = str+"CASE2";
break;
}
}
}
public class productnames
{
public const string DEVICE1 = "name1";
public const string DEVICE2 = "name2";
public const string DEVICE3 = "name3";
public const string DEVICE4 = "name4";
}
上面的代码不起作用,因为你不能在整个类之间切换。更好的方法是这样的:
private const string DEVICE1 = "dev1";
private const string DEVICE2 = "dev2";
private void button1_Click(object sender, EventArgs e)
{
string str = textBox1.Text;
getCommand(str)
}
private void getCommand(string Dev)
{
switch (Dev)
{
case DEVICE1:
label1.Text = str+"CASE1";
break;
case DEVICE2:
label1.Text = str+"CASE2";
break;
}
}
这个例子可能很有用:
#define CMD_VERSION 0
#define CMD_TYPE 1
private void getCommandName(CMD)
{
switch(CMD)
{
case CMD_VERSION:
return ("ver");
case CMD_TYPE:
return ("serienummer");
}
}