为了账号安全,请及时绑定邮箱和手机立即绑定

小白,请教各位大佬!c#中全局变量的使用对return的影响?跪求!

小白,请教各位大佬!c#中全局变量的使用对return的影响?跪求!

紫衣仙女 2019-08-24 22:35:53
voidfunc(){boolis_do=false;if(is_do==false){is_do=true;return;}if(is_do==true){Debug.log("OK")}}局部变量,不会打印“OK”,显然,是return的作用,跳出了函数func.如果我换成一个全局变量A.IsDoclassA{privatestaticboolisdo=false;publicstaticboolIsDo{set{isdo=value;}get{returnisdo;}}voidfunc(){if(A.IsDo==false){A.IsDo=true;return;}if(A.IsDo==true){Debug.log("OK")}}就会打印“ok”,说明return没起作用。请问什么原因?
查看完整描述

2 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

单纯的全局变量或者静态变量不会对return产生任何意料之外的影响。但这两种情况都可能导致情况变得复杂。比如很可能在任何其他地方,其他时间点,某些操作将这个全局变量的值改变了。尤其是静态变量,任何用户任何线程都可以改变它,进而影响到你。所以,上述A.IsDo一定是在某些情况被改成了true,导致打印出了“OK”
                            
查看完整回答
反对 回复 2019-08-24
  • 2 回答
  • 0 关注
  • 348 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信