A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 后半 中级黑马   /  2014-3-14 23:29  /  1086 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 后半 于 2014-3-15 00:20 编辑

跟着C#基础做练习题,发现的问题,跟正确的对比,得出的结论,想求证一下。
在while中定义的变量,拿到外面来就不好使了么??而在while外面定义的变量,拿到while里面就好使。。。

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

7 个回复

倒序浏览
这其实就是局部变量的生存周期问题,循环内定义的局部变量在循环结束后将自动销毁;同样,函数内定义的局部变量如果不通过return返回,也将在函数结束后自动销毁。

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
鬼鬼 发表于 2014-3-14 23:45
这其实就是局部变量的生存周期问题,循环内定义的局部变量在循环结束后将自动销毁;同样,函数内定义的局部 ...

哦哦,自动销毁。。。了解了,看视频就是问不了问题啊。。。我还想贴上来代码呢。。。现在不用了。。。多谢多谢。。。
回复 使用道具 举报
亲,其实这是变量的作用域的问题:变量的作用域从定义开始,到其所在的大括号为止。
比如说:你在一个方法里定义一个变量,那么它的作用域就从这个方法的大括号开始到这个方法的反大括号为止,同理,在循环语句里,判断语句里等,都是这样,这个变量叫做局部变量。
回复 使用道具 举报
后半 发表于 2014-3-15 00:19
哦哦,自动销毁。。。了解了,看视频就是问不了问题啊。。。我还想贴上来代码呢。。。现在不用了。。。多 ...

其实准确地讲,应该说是被CLR(公共语言运行时)回收。刚才有急事要出去,回答得不准确,见谅……
回复 使用道具 举报
李恒权 发表于 2014-3-15 01:07
亲,其实这是变量的作用域的问题:变量的作用域从定义开始,到其所在的大括号为止。
比如说:你在一个方法 ...

恩恩,多谢多谢,了解了。。
回复 使用道具 举报
后半 中级黑马 2014-3-15 12:29:06
7#
鬼鬼 发表于 2014-3-15 02:22
其实准确地讲,应该说是被CLR(公共语言运行时)回收。刚才有急事要出去,回答得不准确,见谅…… ...

没事没事。。。意思理解了就行了。。。
回复 使用道具 举报
变量的作用域不太一样,在while里面的作用域仅限与while循环内部
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马