
C#中的标签使用方法
先声明,本人是C#菜鸟,但是之前用其他语言写过一些程序。记得在很多语言中,都有标签(这里的标签不是指Label控件),用于标记语言块大致就像这样:MyLable:{}这是...
先声明,本人是C#菜鸟,但是之前用其他语言写过一些程序。
记得在很多语言中,都有标签(这里的标签不是指Label控件),用于标记语言块
大致就像这样:
MyLable:{
}
这是我之前写的一个程序,直接保存就能运行:
<html><head><title></title></head><body>
<script language="javascript" type="text/javascript">
var a=3;
test:{
if (a>1) {alert(1); break test;}
if (a>2) {alert(2); break test;}
if (a>3) {alert(3); break test;}
if (a>4) {alert(4); break test;}
}
</script></body></html>
其中“break test;”用于跳出test标签块,这样的话只会alert一次(1)。
如果删掉代码中的“break test;”,则会alert两次(1和2)。
如果没记错,C#里面也有这样的标签。但是我在编写时没有成功,以下是我的测试代码(只有标签部分,其他省略了):
int a = 2;
test: {
if (a > 0) { MessageBox.Show(0); break test; }
if (a > 1) { MessageBox.Show(1); break test; }
if (a > 2) { MessageBox.Show(2); break test; }
if (a > 3) { MessageBox.Show(3); break test; }
}
但是编译器说我在“break test;”后面少写了“;”号,我不明白是为什么,请高人指点。 展开
记得在很多语言中,都有标签(这里的标签不是指Label控件),用于标记语言块
大致就像这样:
MyLable:{
}
这是我之前写的一个程序,直接保存就能运行:
<html><head><title></title></head><body>
<script language="javascript" type="text/javascript">
var a=3;
test:{
if (a>1) {alert(1); break test;}
if (a>2) {alert(2); break test;}
if (a>3) {alert(3); break test;}
if (a>4) {alert(4); break test;}
}
</script></body></html>
其中“break test;”用于跳出test标签块,这样的话只会alert一次(1)。
如果删掉代码中的“break test;”,则会alert两次(1和2)。
如果没记错,C#里面也有这样的标签。但是我在编写时没有成功,以下是我的测试代码(只有标签部分,其他省略了):
int a = 2;
test: {
if (a > 0) { MessageBox.Show(0); break test; }
if (a > 1) { MessageBox.Show(1); break test; }
if (a > 2) { MessageBox.Show(2); break test; }
if (a > 3) { MessageBox.Show(3); break test; }
}
但是编译器说我在“break test;”后面少写了“;”号,我不明白是为什么,请高人指点。 展开
展开全部
你之前的那个不叫标签,而是一个简单的全局Json+闭包
本身没有什么含义
在C#中可以这样来变通实现
Action test=()=>{
if (a > 0) { MessageBox.Show(0);return ; }
if (a > 1) { MessageBox.Show(1); return ; }
if (a > 2) { MessageBox.Show(2); return ; }
if (a > 3) { MessageBox.Show(3); return ; }
};
test();
本身没有什么含义
在C#中可以这样来变通实现
Action test=()=>{
if (a > 0) { MessageBox.Show(0);return ; }
if (a > 1) { MessageBox.Show(1); return ; }
if (a > 2) { MessageBox.Show(2); return ; }
if (a > 3) { MessageBox.Show(3); return ; }
};
test();
追问
您给的这些代码,VS2005没有通过
IDE给的错误提示是在这一行语句中Action test=()=>{
1.少输入了“)”
2.输入的“)”无效,而且我检查了,不是全半角字符的问题
3.输入的“)”无效
能帮我检查一下原因吗?
追答
我的代码需要C#3.0支持,如果是C#2.0的话,可以使用匿名委托代替
展开全部
这个标签
test:{
}
在c#是没有 break test,建议改成goto,或者switch case结构。
test: {
if (a > 0) { MessageBox.Show(0); goto test1; }
if (a > 1) { MessageBox.Show(1); goto test1; }
if (a > 2) { MessageBox.Show(2); goto test1; }
if (a > 3) { MessageBox.Show(3); goto test1; }
}
test1:
int a = 100;
test:{
}
在c#是没有 break test,建议改成goto,或者switch case结构。
test: {
if (a > 0) { MessageBox.Show(0); goto test1; }
if (a > 1) { MessageBox.Show(1); goto test1; }
if (a > 2) { MessageBox.Show(2); goto test1; }
if (a > 3) { MessageBox.Show(3); goto test1; }
}
test1:
int a = 100;
追问
goto确实是可行的,但是由于类似这种情况会经常出现,我不太想用goto。
其实return也可以满足要求,但是由于程序其他部分的逻辑,在这里也不能使用。
另外,虽然我在这里写的测试函数可以用select case解决
但是我正在写的程序不能使用,所以-_-#也不可以。
我刚接触C#才几个月,知道的也只有这些,请问还有别的思考方向么?
追答
用switch case 可以的
switch(a)
{
case 1:
break;
case 2:
break;
case 3:
break;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
test: {
if (a > 0) { MessageBox.Show(0); break test; };
if (a > 1) { MessageBox.Show(1); break test; };
if (a > 2) { MessageBox.Show(2); break test; };
if (a > 3) { MessageBox.Show(3); break test; };
};
试试这样行吗?
if (a > 0) { MessageBox.Show(0); break test; };
if (a > 1) { MessageBox.Show(1); break test; };
if (a > 2) { MessageBox.Show(2); break test; };
if (a > 3) { MessageBox.Show(3); break test; };
};
试试这样行吗?
追问
看到您的回答,试了试,VS2005仍然不通过,请问还有别的可能原因吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询