日本午夜一本久久久综合_免费日韩电影_亚洲激情视频_国产超碰91_不卡的电视剧免费网站有什么_佐佐木明希av_成人精品免费网站_久久婷婷国产91天堂综合精品_91在线观看地址_亚洲自拍欧美另类_日韩黄色三级在线观看_一区在线中文字幕

歡迎您訪問深入理解Yield關鍵字的用法與優勢:代碼實戰與斷點調試指南!

深入理解Yield關鍵字的用法與優勢:代碼實戰與斷點調試指南

更新時間:2024-12-31 09:56:10作者:佚名

我們學習知識的目的就是為什么要使用yield關鍵字,不使用可以嗎?相信會更有趣。

首先貼出正常輸出偶數集的方法。

/*
 *
 *  學習Yield Return 語法
 *  使用兩個方法,顯示1 - 100之間的全部偶數
 * 
 * 
 */
using System;
using System.Collections.Generic;
namespace YieldReturn語法解析
{
    class Program
    {
       static  private List<int> _numArray; //用來保存1-100 這100個整數
        Program() //構造函數。我們可以通過這個構造函數往待測試集合中存入1-100這100個測試數據
        {
            _numArray = new List<int>(); //給集合變量開始在堆內存上開內存,并且把內存首地址交給這個_numArray變量
            for (int i = 1; i <= 100; i++) 
            {
                _numArray.Add(i);  //把1到100保存在集合當中方便操作
            }
        }
        static void Main(string[] args)
        {
            new Program();
            TestMethod();
        }
        //測試求1到100之間的全部偶數
        static  public void TestMethod()
        {
            foreach (var item in GetAllEvenNumber()) 
            {
                Console.WriteLine(item); //輸出偶數測試
            }
        }
        //測試我們正常情況下拿到全部偶數的方法
       static  IEnumerable<int> GetAllEvenNumber()
        {
            List<int> result = new List<int>(); //開集合內存存偶數用
            foreach (int num in _numArray) 
            {
                if(num % 2 == 0) //判斷是不是偶數
                {
                    //yield return num;
                    result.Add(num); //存入集合
                }
            }
            //返回偶數集合變量   可能有人會覺得奇怪返回類型不是List這樣可以嗎
            //這個就要回到我們的里氏替換原則了,子類是可以替換父類的,也就是當父類用
            //比如我這個方法是想得到IEnumerable 類型變量,但是我給了List類型變量
            //注意List 是繼承 IEnumerable 的,什么意思當我們把子類當父類使用,
            //那么大才小用,因為子類很多都是繼承父親,你自身增加很多字段或者方法,這樣就不能用了。
            return result;  
            //yield break;
        }
    }
}

發布使用 Yiele Return 方法輸出耦合集合

/*
 *
 *  學習Yield Return 語法
 *  使用兩個方法,顯示1 - 100之間的全部偶數
 * 
 * 
 */
using System;
using System.Collections.Generic;
namespace YieldReturn語法解析
{
    class Program
    {
       static  private List<int> _numArray; //用來保存1-100 這100個整數
        Program() //構造函數。我們可以通過這個構造函數往待測試集合中存入1-100這100個測試數據
        {
            _numArray = new List<int>(); //給集合變量開始在堆內存上開內存,并且把內存首地址交給這個_numArray變量
            for (int i = 1; i <= 100; i++) 
            {
                _numArray.Add(i);  //把1到100保存在集合當中方便操作
            }
        }
        static void Main(string[] args)
        {
            new Program();
            TestMethod();
        }
        //測試求1到100之間的全部偶數
        static  public void TestMethod()
        {
            foreach (var item in GetAllEvenNumber()) 
            {
                Console.WriteLine(item); //輸出偶數測試
            }
        }
        //測試我們使用Yield Return情況下拿到全部偶數的方法
       static  IEnumerable<int> GetAllEvenNumber()
        {
            foreach (int num in _numArray) 
            {
                if(num % 2 == 0) //判斷是不是偶數
                {
                    yield return num; //返回當前偶數
                }
            }        
            yield break;  //當前集合已經遍歷完畢,我們就跳出當前函數,其實你不加也可以
            //這個作用就是提前結束當前函數,就是說這個函數運行完畢了。
        }
    }
}

你測試過這2個代碼的結果嗎?你能正確得到所有偶數組嗎?我需要你專門測試一下。只有這樣,你才能快速進步,才能真正學會。只要觀看并練習假動作即可。

現在我們來談談它們的區別:

這才是你真正需要學習的地方

我們需要設置一個斷點

這里寫圖片描述

我希望您在斷點處進行調試。如果你貼的細節太多,你會發現in return是什么意思,當代碼到達Yield return num時,當前函數就會結束,num會被移交給這里。我先給你看圖片。

這里寫圖片描述

最后,將給出 item 變量。

然后輸出,然后執行GetAllEvenNumber()方法,與最后一個偶數相同。

我們發現這個Yield Return可以將當前函數的進程狀態切換為阻塞狀態貝語網校,然后選擇將CPU交給當前傳出進程,從而可以轉而執行調用者函數。 (補充一點知識,我們寫的程序添加到內存中并不一定是一個進程,我們會根據情況將其劃分為若干個子進程,以方便操作系統的管理以及多個進程的運行)內存中的程序以提高計算機資源的利用率)

這有一個優點。如果我們有 1,000,000 個數據,我們需要獲取內部的耦合。當我們通過這個方法得到一個耦合后in return是什么意思,它會立即顯示在控制臺上。不用等待很長時間,而是找到所有偶數并將其存儲在集合中,然后一一輸出。

這個好處是巨大的。比如我們的用戶可能只是一開始看數據,確定不是所有的值都是需要的,讀完這些之后再看剩下的,這樣數據就會感覺顯示沒有延遲。

接下來,我們斷點并調整通用函數來查找偶數。

這里寫圖片描述

我們發現這個循環在完成之前不會退出當前函數,也就是說,我們必須找到所有偶數。所以如果我們有很多數據。它將等待該數據,然后才能獲取該數據并將其顯示給用戶。

這就麻煩了。

所以我們得出結論:Yield Return關鍵字的作用是退出當前函數,保存當前函數執行的地方,也就是上下文。你發現上次運行的代碼不會再執行,直到下次執行這個函數。

但你一般的返回結果是,如果你在循環體內提前返回,下面調用這個函數就會從第一步重新執行。不記錄最后執行位置。

為您推薦

2023年西安工程技術學校錄取分數線

每年中考過后,學生們都到處去尋找有關自己理想院校的信息,比如招生計劃、招生辦聯系電話、招生條件、地址等,其中助學政策是大家最關注的信息之一了,其中西安工程技術學校的助學政策是大家比較關注的問題,下面小編特別整理了西安工程技術學校助學政策情況,以供考生參考,希望能給大家有所幫助。

2024-12-31 10:16

Dirty Look是什么意思?揭秘英文中臭臉、不悅表情的用法與例句

look”是什么意思嗎?old.face來表現。在口語中,常用這一句來詢問別人有什么不開心的。it?這個短語從字面意思上來看,就是指看向別人的眼睛/臉。oneonepeopleonly).someonesomeonesomeoneon,意思是“看不起,小看,蔑視”

2024-12-31 08:46

in respect of是什么意思 這個殺手不太冷:Luc Besson經典之作,Jean Reno與Mathilda7

那咱們就說說這部電影的中文名字——《這個殺手不太冷》(不是為了被人尊重)如果你跟著歌詞聽完這首歌,是不是有些摸不著頭腦。全篇歌詞始終沒告訴你心是什么形狀的,卻一直反復強調“這不是我心的形狀”。整首歌一直在講撲克,而在撲克中,這三個詞的意思是:

2024-12-31 08:26

江西財經大學等江西雙非院校實力強勁,就業率高的大學推薦

江西的大學數量不算少,但211大學只有南昌大學一所,不過江西還有一些雙非院校實力很不錯,專業也很有特色。這所大學2023年在江西省的招生分數才500多分,性價比不錯,適合分數中等的學生報考。對于大專生來說,這所學校非常好,因為拿大專的分數就可以進鐵路局還是不錯的。

2024-12-30 21:49

七下U1單元join, join in, take part in要點口訣及用法詳解

in要點口訣in要點口訣一個單詞是join。in有什么區別in都有參加的意思,所以在平時不管是考試,還是對話中經常會遇到不知道用哪個的情況,今天我們就來對比一下他們之間的區別,用例句來詳細說明下它們之間有什么不同。in是參與到一項活動中,后面跟表示“活動”的詞,如:in不可以和join互換。

2024-12-30 21:17

初中英語常用短語對比解析:happen與take place、must與have to的區別

arrive為不及物動詞,后面接介詞in或at。to常用于口語,可代替前二者。of是短語介詞,后面接名詞性詞語。time多數情況下作名詞短語,意為一些時間;一些時候;它還可以作副詞詞組,用來表示一個未肯定的時刻,此時它可與sometime互換。

2024-12-30 20:55

加載中...
亚洲精品视频在线观看免费| 婷婷丁香久久五月婷婷| 国产色婷婷国产综合在线理论片a| 免费看a在线观看| 成人91免费视频| 99自拍视频在线观看| 懂色av中文字幕一区二区三区| 日韩高清免费在线| 风间由美一区二区三区| 日韩一级理论片| 日本乱理伦在线| 日本欧美加勒比视频| 日韩欧美亚洲一区二区| a级国产乱理论片在线观看99| 国产精品久久久久秋霞鲁丝| 日韩精品久久一区二区| 欧美3p视频在线观看| 猛男gaygay欧美视频| 国产精品久久一| 妺妺窝人体色www看人体| 色综合www| 欧美日韩国产a| 亚洲一区3d动漫同人无遮挡| 亚洲高潮无码久久| 日韩电影免费网址| 久久影院在线观看| 1024免费在线视频| 欧美日韩亚洲一区三区| 日本一区二区三区在线播放| 久久99偷拍| 4438全国亚洲精品在线观看视频| 深夜福利一区二区三区| 欧美中文字幕在线播放| 99久久99热这里只有精品| 成人日韩在线电影| 久久蜜桃资源一区二区老牛| 亚洲欧美一区二区原创| 99精品国产一区二区三区不卡| 日本免费一级视频| 亚洲综合视频在线| 欧美一级二级三级区| 日本高清视频一区二区| 天天免费亚洲黑人免费| 97成人超碰免| 久久精品一区二区三区中文字幕| www亚洲国产| 亚洲免费观看高清完整版在线 | 欧美/亚洲一区| 精品国产福利| 亚洲激情第一页| 欧美综合社区国产| 亚洲第一av网站| 中文字幕在线播放第一页| 国产日韩欧美精品电影三级在线| 伊人国产在线视频| 欧美一区二区成人| 精品国产一区二区三区av片| 精品国产第一页| 亚洲欧美激情视频在线观看一区二区三区 | 可以在线看的黄色网址| 欧美一级日韩免费不卡| 天堂日韩电影| 免费网站永久免费观看| 欧美一区二区三区婷婷月色| 日韩夫妻性生活xx| 国产视频在线视频| 国内精品久久久久伊人av| 麻豆精品在线视频| 日本在线天堂| 日产精品一线二线三线芒果| 日韩欧美999| 免费电影一区二区三区| 在线播放精品一区二区三区| 久久综合影音| 黄色在线播放| 91久久国产婷婷一区二区| 中文天堂在线一区| 日韩精品一页| 九九九在线观看视频| 久久国产精品久久久久| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 精品国产伦一区二区三区观看方式| 欧美成a人免费观看久久| 日韩 欧美 视频| 社区色欧美激情 | 国产成+人+日韩+欧美+亚洲| 理论片在线观看理伦片| 一区二区三区视频在线看| 91黄色在线看| 国产日韩一级二级三级| 亚洲一区二区成人在线观看| av男人的天堂在线| 中文字幕欧美专区| 久久不见久久见中文字幕免费| 国产主播自拍av| 91麻豆免费观看| 人成在线视频| 亚洲精品ww久久久久久p站| 亚洲一区网址| 天堂在线资源视频| 国产精品中文字幕在线观看| 国产欧美精品一区aⅴ影院| 亚洲自拍都市欧美小说| 992tv免费直播在线观看| 日韩电影免费观看高清完整| 日韩在线观看免费高清| 国产精品无码永久免费888| 99热精品久久| 99久久婷婷国产综合精品首页 | 麻豆久久婷婷| 啊啊啊久久久| 最新在线观看av| 在线观看精品视频| 国产欧美精品日韩精品| 欧美嫩在线观看| wwwwxxxxx欧美| 99精品国产在热久久下载| 亚洲午夜免费| aa视频在线观看| 视频一区二区在线播放| 狠狠热免费视频| 国产精品国产三级国产专区51| 国产裸体写真av一区二区| 国产精品99久久久久久www | 老**午夜毛片一区二区三区| 91亚洲精品丁香在线观看| 欧美一区二区福利视频| 亚洲成人综合网站| 91毛片在线观看| 奇米影视一区二区三区小说| 亚州av乱码久久精品蜜桃| 久久视频免费| 人狥杂交一区欧美二区| 成人三级网址| 国产午夜在线观看| 东北一级毛片| 9久久婷婷国产综合精品性色| www.色就是色| 456国产精品| 亚洲国产精品女人久久久| 中文字幕乱码久久午夜不卡| 日韩中文在线电影| av免费在线一区| 欧美激情一级片一区二区| 国产亚洲欧美一区在线观看| 日本粉色视频在线观看| 日本在线免费观看一区| 97精品一区二区三区| 91精品婷婷国产综合久久竹菊| 91在线精品一区二区| 精品久久久久久国产| 中文国产成人精品久久一| 精品剧情v国产在线观看在线| 中文字幕人成人乱码| jizzjizzji欧美| 97国产精品免费视频| 欧美精品成人一区二区三区四区| 日韩三级视频| 国产精品实拍| 久久免费一级片| 668精品在线视频| 亚洲第一精品在线| 日韩av电影天堂| 国产欧美日韩影院| 全网国产福利在线播放| 亚洲欧洲一区二区在线观看| 国产精品v日韩精品| 尤物99国产成人精品视频| 欧美日韩三级在线| 成人黄色网址在线观看| 欧美激情777| 网站一区二区| 女人抽搐喷水高潮国产精品| 日韩三区四区| aaa国产精品| 群体交乱之放荡娇妻一区二区| 日韩欧美精品一区二区三区| 337p日本| 超清av在线| 精品人人人人| 国产乱子伦视频一区二区三区| 中文av一区二区| 日韩一二三区不卡| 97视频在线观看免费高清完整版在线观看| 午夜精品久久久99热福利| 日本成人性视频| jizz在线免费观看| 免费成人三级| 亚洲精品a级片| 美日韩一级片在线观看| 久久精品日韩一区二区三区| 色香蕉久久蜜桃| 欧美成人性色生活仑片| 欧美精品免费观看二区| 亚洲女人天堂| 日本久久综合| 国产精品电影一区二区| 亚洲伦理中文字幕| 欧美不卡1区2区3区| 又爽又大又黄a级毛片在线视频|