在内部使用 swith 语句时 C# 函数中出错
本文关键字:函数 出错 语句 swith 在内部 | 更新日期: 2023-09-27 18:35:16
我的C#代码有问题,我真的不知道,为什么会有错误!在我看来,它应该可以工作,但它甚至t. It doesn
编译。这就是函数:
public bool AddColumn(string tableName, string colName, ColType colType)
{
switch(colType)
{
ColType.MYSQL_DOUBLE:
Console.Write("DOUBLE");
ColType.MYSQL_INT:
Console.Write("INT");
default:
Console.Write("DEFAULT");
}
return true;
}
错误显示缺少";"和"}"。因此,如果尝试在函数的内容中进行注释,例如:
public bool AddColumn(string tableName, string colName, ColType colType)
{/*
switch(colType)
{
ColType.MYSQL_DOUBLE:
Console.Write("DOUBLE");
ColType.MYSQL_INT:
Console.Write("INT");
default:
Console.Write("DEFAULT");
}*/
return true;
}
我可以编译程序。因此,switch 语句内部存在问题,不是吗?希望有人能帮助我摆脱困境...
仅供参考,类型'ColType在程序内声明:
public enum ColType
{
MYSQL_DOUBLE = 0,
MYSQL_INT = 1
};
您错过了switch
中的 case
关键字,并且在每种情况下都放置了break
,值得在 MSDN 上的文档中查找
switch(colType)
{
case ColType.MYSQL_DOUBLE:
Console.Write("DOUBLE");
break;
case ColType.MYSQL_INT:
Console.Write("INT");
break;
default:
Console.Write("DEFAULT");
break;
}
c# 中的正确开关大小写
https://msdn.microsoft.com/en-sg/library/06tc147t.aspx
int caseSwitch = 1;
switch (caseSwitch)
{
case 1:
Console.WriteLine("Case 1");
break;
case 2:
Console.WriteLine("Case 2");
break;
default:
Console.WriteLine("Default case");
break;
}
您缺少case
- 和break
- 语句来区分交换机中的大小写:
switch(colType)
{
case ColType.MYSQL_DOUBLE:
Console.Write("DOUBLE");
break;
case ColType.MYSQL_INT:
Console.Write("INT");
break;
default:
Console.Write("DEFAULT");
break;
}
还要考虑这一点:
开始执行所选开关部分中的语句列表 使用第一个语句并继续浏览语句列表, 通常直到跳转语句,例如中断、转到大小写、返回、 或投掷,达到。此时,控制权转移到 切换语句或其他事例标签。(https://msdn.microsoft.com/library/06tc147t.aspx)
这意味着虽然case
将指示开关大小写的开始break
(或任何其他中断执行的语句,如return
或throw
)表示其结束。