首页 新闻 会员 周边 捐助

C#编程GOTO跳转语句无法找到语句范围内的标签

0
悬赏园豆:100 [已解决问题] 解决于 2011-12-27 11:32

载入一个别人的项目 DEBUG 结果报错说找不到GOTO语句标签 此源码中GOTO语句很多 其他的GOTO语句指向同样的标签不报错 而在两个CASE中报错 联系作者 说在相应行加上标签 不知该如何操作

PRIVATE VOID X()

{

......

}

PORTECTED OVERRIDE VOID ONKEYDOWN(KEYEVENTARGS KEA)

{

SWITCH (KEA.KEYCODE)

CASE KEYS.ESCAPE:

SWITCH (A)

{

......

}

BREAK;

CASE KEYS.ENTER:

SWITCH (A)

{

......

}

BREAK;

CASE KEYS.SCROLL:

IF (......)

{

.......

}

ELSE ......

GOTO X;报错

CASE KEYS.J:

......

CASE KEYS.K:

......

CASE KEYS.L:

......

}

}

silentnelis的主页 silentnelis | 初学一级 | 园豆:38
提问于:2011-12-26 20:34
< >
分享
最佳答案
0

那你得分析清楚或者问原作者问清楚,x标签应该加在哪一行呢。

收获园豆:100
LCM | 大侠五级 |园豆:6876 | 2011-12-26 21:05

他的意思应该是在出错的行处加上标签 应该如此操作呢 谢谢

silentnelis | 园豆:38 (初学一级) | 2011-12-26 21:18

@silentnelis: 怎么可能在出错的行上加标签呢,那始终在那个位置跳不出来了。goto x是表示跳到有x标签的那一行处,你肯定要弄明白让它跳到哪去,就在那加上标签。

LCM | 园豆:6876 (大侠五级) | 2011-12-26 21:35

@LCM: 只有前面一个X标签 是不是操作时在PRIVATE VOID X()那里按CTRL+B+G组合键加标签呢 这操作对吧 试验了下不行

silentnelis | 园豆:38 (初学一级) | 2011-12-26 22:04

@LCM: 另外 下面几个CASE也需要完成跳转 看来得加好几个标签才能不报错 能加好几个标签吗

silentnelis | 园豆:38 (初学一级) | 2011-12-26 22:07

@silentnelis: 假如你知道它跳到哪的就好办,比如有goto x,则你在它要跳到的地方加一个标签如下 x:

可以加很多标签的。

LCM | 园豆:6876 (大侠五级) | 2011-12-26 22:12

@LCM: 按什么键操作呢 比如在PRIVATE VOID X()处应该怎么把下面几个CASE的行号标记出来呢 不会弄 或者在什么菜单下操作呢 谢谢

silentnelis | 园豆:38 (初学一级) | 2011-12-26 22:18

@LCM: 编辑 切换书签 启用书签 试了也没效果

silentnelis | 园豆:38 (初学一级) | 2011-12-26 22:26

@LCM: 加书签这操作对否

silentnelis | 园豆:38 (初学一级) | 2011-12-26 22:46

@LCM: 加X:怎么弄啊

silentnelis | 园豆:38 (初学一级) | 2011-12-26 22:48

@LCM: 在吗 明天看回复吧 下了

silentnelis | 园豆:38 (初学一级) | 2011-12-26 22:56

@silentnelis: 这和书签没一点关系的啦。goto是跳转语句,跳到goto后面紧跟着的标签名所在的地方。标签怎么加呢,就是在程序goto要跳到的地方加一行代码,比如你报错的那行goto x,则表示要跳到一行有x标签的地方,你可以在它要跳到的那里插入如下一行代码:

x: 



LCM | 园豆:6876 (大侠五级) | 2011-12-27 09:09

@silentnelis: goto语句也称为无条件转移语句,其一般格式如下: goto 语句标号; 其中语句标号是按标识符规定书写的符号, 放在某一语句行的 前面,标号后加冒号(:)。语句标号起标识语句的作用,与goto 语句配合使用。我上面说标签,其实不是指书签,更准确地说它应该叫语句标号,标记你要跳到哪一行代码。

LCM | 园豆:6876 (大侠五级) | 2011-12-27 09:11

@LCM: 

PRIVATE VOID X()

X:是这样吗 那怎么再标示行号呢 比如100行、120行、130行

{

......

}

silentnelis | 园豆:38 (初学一级) | 2011-12-27 09:46

@silentnelis: 不需要签行号啊。

LCM | 园豆:6876 (大侠五级) | 2011-12-27 09:47

@LCM: 

PRIVATE VOID X()

{

X:这个标签尚未被引用 报错多了一条 还得引用吗

......

}

silentnelis | 园豆:38 (初学一级) | 2011-12-27 09:52

@LCM: 能不能把改写的代码段写下

就像是

PRIVATE VOID X()

{

X:这个标签尚未被引用 报错多了一条 还得引用吗

......

}

这样

silentnelis | 园豆:38 (初学一级) | 2011-12-27 09:55

@LCM: 不知道写在哪儿 偶太菜鸟了

silentnelis | 园豆:38 (初学一级) | 2011-12-27 09:56

@LCM: 不是报错多了条 是警告

silentnelis | 园豆:38 (初学一级) | 2011-12-27 09:57

@LCM: 忘记说 出现错误的CS文件好似个表单 在设计视图下灰色表 是不是应该在设计视图下加工具箱中的公共控件LABEL啊 不会用

silentnelis | 园豆:38 (初学一级) | 2011-12-27 10:11

@LCM: 这个EXE文件是个带文字表格的输出形式

silentnelis | 园豆:38 (初学一级) | 2011-12-27 10:12

@LCM: 是得加LABEL控件吧 谢谢啦

silentnelis | 园豆:38 (初学一级) | 2011-12-27 10:14

@LCM: 在吗

silentnelis | 园豆:38 (初学一级) | 2011-12-27 10:27

@silentnelis: 不是加lable控件呢。“这个标签尚未被引用 ”,你写的x大小写一样吧。

LCM | 园豆:6876 (大侠五级) | 2011-12-27 10:28

@LCM: 要不你发给我吧,我帮你调通再发给你。我的邮箱是 liuxin95915@163.com

LCM | 园豆:6876 (大侠五级) | 2011-12-27 10:32

@LCM: 好的 这就发

silentnelis | 园豆:38 (初学一级) | 2011-12-27 10:33

@LCM: 发了

silentnelis | 园豆:38 (初学一级) | 2011-12-27 10:36

@silentnelis: 你的是不是这一句报错。

goto 起盤;

你把所有报错的在case里面的这一句替换成:

                    Invalidate();
起盤();
break;



LCM | 园豆:6876 (大侠五级) | 2011-12-27 11:03

@LCM: 我试一下

silentnelis | 园豆:38 (初学一级) | 2011-12-27 11:09

@LCM: 太好了 调试成功 能生成原来那种EXE吗 我想产生新程式该怎么做呢 好人帮忙帮到底吧 太感谢啦

silentnelis | 园豆:38 (初学一级) | 2011-12-27 11:22

@LCM: 是不是需要像ECLIPSE那样安装插件才可以输出EXE呢

silentnelis | 园豆:38 (初学一级) | 2011-12-27 11:24

@LCM: 还是试一下别的办法吧 感谢LCM

silentnelis | 园豆:38 (初学一级) | 2011-12-27 11:31

@silentnelis: 不是的啊,你在解决方案资源管理器里面找到zwchenlong这个项目,点右键生成,然后你在源代码的文件目录下面有个文件夹\bin\Debug,里面就有zwchenlong.exe

LCM | 园豆:6876 (大侠五级) | 2011-12-27 11:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册