变量重复定义?

sinat_38053725 2017-05-07 04:54:47


这两行string str =null; 在方法外定义了一次,又在Judge方法内重新定义了一次,但是没有报错,难道方法内外的同名变量是两回事吗?
当我注释掉方法内的string str=null;保留方法外的时,调试后单击验证码后pictruebox里面的数字文本就不会改动了,不能再单击pictruebox就换一个数字不一样的验证码

...全文
419 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxstar8 2017-05-07
  • 打赏
  • 举报
回复
可以去看下“ 全局变量”和“局部变量”的应用
crystal_lz 2017-05-07
  • 打赏
  • 举报
回复
public class test{ private string str_test;// 在类test范围内都能被访问到 public void test(){ string str_test;//在test方法范围内有效 str_test="abc";//若有上面这一句则 忽略外面的str_test 否则优先使用test方法内部的str_test } }
TOF_LXG 2017-05-07
  • 打赏
  • 举报
回复
C#编译器不认为有冲突。
pengxuyou 2017-05-07
  • 打赏
  • 举报
回复
C#编译器把在类型级别声明的变量看做 字段。把在方法内声明的变量看做 局部变量。所以不会报错。方法内使用 str 时屏蔽掉了外部的 str 。不会冲突。
sinat_38053725 2017-05-07
  • 打赏
  • 举报
回复
引用 1楼xuzuning 的回复:
内外两个 str 是两回事 注释掉方法内的 str 定义,就使用全局的 str 了 但是你并没有清除 str 原有的内容
为什么会是两回事,是因为private修饰了吗?
xuzuning 2017-05-07
  • 打赏
  • 举报
回复
内外两个 str 是两回事 注释掉方法内的 str 定义,就使用全局的 str 了 但是你并没有清除 str 原有的内容

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧