黑马程序员技术交流社区
标题:
winForm的一个小问题
[打印本页]
作者:
李志祥
时间:
2012-4-5 23:32
标题:
winForm的一个小问题
本帖最后由 李志祥 于 2012-4-18 15:10 编辑
在看视频时候,winForm,练习二的时候里面老是讲的那个报错,没有听清楚,求解
123.png
(207.86 KB, 下载次数: 61)
下载附件
2012-4-5 23:32 上传
作者:
张世豪
时间:
2012-4-6 00:25
本帖最后由 张世豪 于 2012-4-6 00:27 编辑
那个是因为把if里的return注释了,在输入没有@符的非法email时,string数组的长度是1,只有一个str[0],不存在第二个索引str[1],所以报错。
作者:
郑帅
时间:
2012-4-6 00:50
索引超出了数组界限的问题:是由于该数组中没有存在该索引的值,比如你存的口袋里有两块钱,你去买一个三块钱的东西时,你拿不出三块钱,这时你就糗大了。脸色变的很黄,和你图片中那黄色一样。
针对你程序来说:
你通过:textBox1.Text拿到一个字符串。
然后通过@分割这个字符串,如果你上面存在@时,你将分割与两部分或部分。
这时你通过判断它是否为两部分,这样的判断非理想处理。比如有一个二逼输入一个“123@234com”
那你分割出来就是:123,234com,但这样的邮箱地址并非是正确的。所以,你以后可能用上正则或其它判断等。
但是你程序为什么会出现异常呢?
因为你在判断成非法邮箱地址时,没有退出button1点击事件,这样程序继续执行。但它拿到的并没有两部分。比如用户输入:"11111,dkfk",那你分割出来就只有一部分:“11111,dkfk”。这样,数组中只有strs[0],并没有 str[1],这样程序很尴尬的。它伤不起,就发火。。。火烧VS就出现索引超出了数组界限。
作者:
刘冬晓
时间:
2012-4-6 05:41
把return解注释了就行了,输入非法email时没返回。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2