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

voidfunc(){
boolis_do=false;
if(is_do==false){
is_do=true;
return;
}
if(is_do==true){
Debug.log("OK")
}
}
局部变量,不会打印“OK”,显然,是return的作用,跳出了函数func.
如果我换成一个全局变量A.IsDo
classA{
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没起作用。
请问什么原因?
紫衣仙女
浏览 349回答 2
2回答

繁花如伊

单纯的全局变量或者静态变量不会对return产生任何意料之外的影响。但这两种情况都可能导致情况变得复杂。比如很可能在任何其他地方,其他时间点,某些操作将这个全局变量的值改变了。尤其是静态变量,任何用户任何线程都可以改变它,进而影响到你。所以,上述A.IsDo一定是在某些情况被改成了true,导致打印出了“OK”
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript