第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

有大佬遇到過這個(gè)問題嗎:c#中全局變量的使用對(duì)return的影響?

有大佬遇到過這個(gè)問題嗎:c#中全局變量的使用對(duì)return的影響?

慕尼黑8549860 2019-08-30 01:16:07
voidfunc(){boolis_do=false;if(is_do==false){is_do=true;return;}if(is_do==true){Debug.log("OK")}}局部變量,不會(huì)打印“OK”,顯然,是return的作用,跳出了函數(shù)func.如果我換成一個(gè)全局變量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")}}就會(huì)打印“ok”,說明return沒起作用。請(qǐng)問什么原因?
查看完整描述

2 回答

?
慕萊塢森

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊

全局變量情況復(fù)雜,局部變量在return之后就被銷毀,下次進(jìn)來再重新初始化為false,所以怎樣都不會(huì)打印OK。類靜態(tài)變量就復(fù)雜了,它一直存在,一直保持原來的值,只在最開始初始化為false一次,比如你這個(gè)func方法,執(zhí)行過一次A.IsDo就會(huì)變成true,下次再調(diào)用func就會(huì)顯示ok。
func是否打印ok不僅取決于A.isdo的初值,還取決于之前是否有人把它設(shè)置為true,就像func本身就把A.isdo設(shè)置為true,不像局部變量一樣會(huì)再次初始化為false,所以func是否打印ok不僅僅取決于func的內(nèi)部邏輯,還取決于之前做了什么。
                            
查看完整回答
反對(duì) 回復(fù) 2019-08-30
?
寶慕林4294392

TA貢獻(xiàn)2021條經(jīng)驗(yàn) 獲得超8個(gè)贊

單純的全局變量或者靜態(tài)變量不會(huì)對(duì)return產(chǎn)生任何意料之外的影響。但這兩種情況都可能導(dǎo)致情況變得復(fù)雜。比如很可能在任何其他地方,其他時(shí)間點(diǎn),某些操作將這個(gè)全局變量的值改變了。尤其是靜態(tài)變量,任何用戶任何線程都可以改變它,進(jìn)而影響到你。所以,上述A.IsDo一定是在某些情況被改成了true,導(dǎo)致打印出了“OK”
                            
查看完整回答
反對(duì) 回復(fù) 2019-08-30
  • 2 回答
  • 0 關(guān)注
  • 361 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)