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

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C#代碼如何實(shí)現(xiàn)讓后面的代碼不執(zhí)行???

C#代碼如何實(shí)現(xiàn)讓后面的代碼不執(zhí)行???

C#
哆啦的時光機(jī) 2018-12-07 11:59:00
A(); public void A() { B(); MessageBox.Show("我是A方法"); } public void B() { C(); MessageBox.Show("我是B方法"); //我想在此處加一些代碼,讓方法A后面的代碼不再執(zhí)行; } public void C() { MessageBox.Show("我是C方法"); //我想在此處加一些代碼,讓方法B后面的代碼不再執(zhí)行; } 如上示例代碼,當(dāng)調(diào)用A方法時,整個執(zhí)行順序是:A->B->C 然后返回:C->B->A 我想實(shí)現(xiàn)在B或C代碼中,加入一些代碼,讓返回終止,即:調(diào)用到C后,不再返回B,C; 想實(shí)現(xiàn)類似ASP.NET Response.End方法一樣: Response.Write("aaaa"); Response.End(); Response.Write("bbb"); 我想過幾種方案: 1.拋錯,這個是可以,但如果A,B,C三個方法中都有try catch,那么就失效,即合實(shí)現(xiàn)但也不優(yōu)雅; 2.AOP,采用代理類,將要執(zhí)行的代碼放到代理方法的執(zhí)行前與執(zhí)行后中間,如果不需要后面的執(zhí)行,則執(zhí)行前return即可,但最終仍然會回到最開始的調(diào)用處A,不行; 3.將ABC三個方法代碼封裝到不同的類中CA,CB,CC,然后在執(zhí)行到B時,提前釋放類CA,但發(fā)現(xiàn)不行。 不知道大家有沒有更好的方法,求指點(diǎn)! 之所以需要實(shí)現(xiàn)后面的所有代碼都不執(zhí)行,是因?yàn)槲蚁霚p少每個執(zhí)行代碼都做判斷,比如: //調(diào)用: MessageBox.Show("開始調(diào)用"); if (A() == false) return; MessageBox.Show("回到初始調(diào)用處的下一行代碼"); public bool A() { if (B() == false) return false; MessageBox.Show("我是A方法"); return true; } public bool B() { if (C() == false) return false; MessageBox.Show("我是B方法"); return false; //通過返回flase,讓被調(diào)用方A自己再判斷是否為false,若為false則不執(zhí)行A后面的代碼 } public bool C() { MessageBox.Show("我是C方法"); return true; } 以上改過后的代碼,通過層級判斷方法的返回結(jié)果,來決定每個方法是否執(zhí)行,少點(diǎn)還可以,但如果項(xiàng)目很多,那么這么多的判斷,肯定是非常臃腫的,需要消除。 求大神指點(diǎn),同時也歡迎大家討論?。?!
查看完整描述

11 回答

?
小怪獸愛吃肉

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超1個贊

被調(diào)用方不能決定調(diào)用方的操作.這是常識.

你說的臃腫是不存在的.調(diào)用方不判斷返回值這行代碼誰看的懂.神仙也不知道這么一行調(diào)用后面的就不執(zhí)行了.

就算你拋異常出去.外面都能接了繼續(xù)跑.除非你把a(bǔ)pplication結(jié)束了.

查看完整回答
反對 回復(fù) 2018-12-24
?
慕村225694

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

程序由 順序 判斷 循環(huán)組成,你就不要在這方面努力了

查看完整回答
反對 回復(fù) 2018-12-24
?
喵喵時光機(jī)

TA貢獻(xiàn)1846條經(jīng)驗(yàn) 獲得超7個贊

是的,努力也無效,最終我放棄這種思路,仍采取我文中最后的方式,每個方法中都增加判斷的機(jī)制。

雖然重復(fù)了一些代碼,但這個是最簡單,最有效的,也便于理解的。

查看完整回答
反對 回復(fù) 2018-12-24
?
動漫人物

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超10個贊

那與我上面的if (C() == false) return false;有什么區(qū)別,沒有區(qū)別,我就是想消除這種重復(fù)判斷

查看完整回答
反對 回復(fù) 2018-12-24
?
慕沐林林

TA貢獻(xiàn)2016條經(jīng)驗(yàn) 獲得超9個贊

@夢在旅途:?

沒有區(qū)別 但是邏輯上可以保持一致?

且這個邏輯 可以只實(shí)現(xiàn)一次

查看完整回答
反對 回復(fù) 2018-12-24
?
慕娘9325324

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

?我還沒怎么看懂意思,用線程怎么樣,給個標(biāo)示量,特定的時候直接終止或者掛起線程

查看完整回答
反對 回復(fù) 2018-12-24
?
慕蓋茨4494581

TA貢獻(xiàn)1850條經(jīng)驗(yàn) 獲得超11個贊

用多線程,確實(shí)可以起到終止執(zhí)行的效果,但會帶來許多的不便,比如:線程的同步問題,線程中操作UI控件等問題,雖說都有解決辦法,但會將本身簡單的方法復(fù)雜化,不可取。

查看完整回答
反對 回復(fù) 2018-12-24
?
海綿寶寶撒

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

@夢在旅途:?Response.End();好像這個就是終止了當(dāng)前線程,所以你要做到這個效果一般都是針對某一個線程里面的情況。

因?yàn)槟阆胱尯竺娴拇a不再執(zhí)行,要不就跳出去(異?;蛘呓K止線程),要不就是加多代碼去判斷。要不然你沒要繞過待執(zhí)行的代碼

查看完整回答
反對 回復(fù) 2018-12-24
?
藍(lán)山帝景

TA貢獻(xiàn)1843條經(jīng)驗(yàn) 獲得超7個贊

@Jimmy.pan: 我意思是 new 一個 Thread ?,然后就可以掌控它隨時讓他終止、掛起,但對主線程無影響了

查看完整回答
反對 回復(fù) 2018-12-24
  • 11 回答
  • 0 關(guān)注
  • 1512 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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