我的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;
}
错误说,缺少';'和'}'。因此,如果If尝试在函数的内容中发表评论,如:
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语句内部存在问题,不是吗?希望有人可以帮助我摆脱这个......
FYI类型'ColType在程序中声明:
public enum ColType
{
MYSQL_DOUBLE = 0,
MYSQL_INT = 1
};
答案 0 :(得分:3)
您错过了case
中的switch
关键字,并在每种情况下都放置了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;
}
答案 1 :(得分:2)
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;
}
答案 2 :(得分:1)
您错过了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;
}
还要考虑这个:
开始执行所选开关部分中的语句列表 用第一个语句并通过语句列表继续, 通常直到跳转语句,例如休息,转到大小写,返回, 到达或者扔,到达。在那一点上,控制权转移到了外面 switch语句或另一个case标签。 (https://msdn.microsoft.com/library/06tc147t.aspx)
这意味着虽然case
将指示switch-case break
的开头(或任何其他中断执行的语句,如return
或throw
)表示其结束