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;”后面少写了“;”号,我不明白是为什么,请高人指点。
展开
 我来答
重典技术闲话
推荐于2017-10-03 · TA获得超过2173个赞
知道大有可为答主
回答量:2593
采纳率:0%
帮助的人:1316万
展开全部
你之前的那个不叫标签,而是一个简单的全局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();
追问
您给的这些代码,VS2005没有通过
IDE给的错误提示是在这一行语句中Action test=()=>{
1.少输入了“)”
2.输入的“)”无效,而且我检查了,不是全半角字符的问题
3.输入的“)”无效
能帮我检查一下原因吗?
追答
我的代码需要C#3.0支持,如果是C#2.0的话,可以使用匿名委托代替
小伊伊的账号
2012-01-08 · TA获得超过165个赞
知道小有建树答主
回答量:199
采纳率:0%
帮助的人:179万
展开全部
这个标签
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;

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Kennytian
2012-01-08 · 超过42用户采纳过TA的回答
知道小有建树答主
回答量:126
采纳率:100%
帮助的人:117万
展开全部
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仍然不通过,请问还有别的可能原因吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式