日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#迭代器、装箱/拆箱、重载等

發布時間:2025/3/13 C# 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#迭代器、装箱/拆箱、重载等 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

迭代器

迭代器是什么?

迭代器是作為一個容器,將要遍歷的數據放入,通過統一的接口返回相同類型的值。

為什么要用迭代器?

為何了為集合提供統一的遍歷方式,迭代器模式使得你能夠獲取到序列中的所有元素而不用關心是其類型,如果沒有迭代器,某些數據結構遍歷較為困難,如Map無法迭代

如果一個類實現了IEnumerable接口,那么就能夠被迭代,才能使用foreach

迭代器概述

  • 迭代器是可以返回相同類型的值的有序序列的一段代碼。
  • 迭代器可用作方法、運算符或?get?訪問器的代碼體。
  • 迭代器代碼使用?yield return?語句依次返回每個元素。yield break?將終止迭代。
  • 可以在類中實現多個迭代器。每個迭代器都必須像任何類成員一樣有唯一的名稱,并且可以在?foreach?語句中被客戶端代碼調用,如下所示:foreach(int x in SampleClass.Iterator2){}
  • 迭代器的返回類型必須為?IEnumerable、IEnumerator、IEnumerable<T> 或?IEnumerator<T>。

yield?關鍵字用于指定返回的值。到達?yield return?語句時,會保存當前位置。下次調用迭代器時將從此位置重新開始執行

如何使用迭代器

?

public System.Collections.IEnumerator GetEnumerator() {for (int i = 0; i < max; i++){yield return i;} }

?

  

//為整數列表創建迭代器 public class SampleCollection{public int[] items = new int[5] { 5, 4, 7, 9, 3 };public System.Collections.IEnumerable BuildCollection() {for (int i = 0; i < items.Length; i++) {yield return items[i];}}} class Program {static void Main(string[] args) {SampleCollection col = new SampleCollection();foreach (int i in col.BuildCollection())//輸出集合數據 {System.Console.Write(i + " ");}for (;;) ;}}

?

?

類型比較

封箱和拆箱子:封箱是把值類型轉換為System.Object,或者轉換為由值類型的接口類型。拆箱相反。

裝箱和拆箱是為了將值轉換為對象

struct MyStruct{public int Val;}class Program{static void Main(string[] args) {MyStruct valType1 = new MyStruct();valType1.Val = 1;object refType = valType1;//封箱操作,可以供傳遞用MyStruct valType2 = (MyStruct)refType;//訪問值類型必須拆箱Console.WriteLine(valType2.Val);//輸出1for (;;) ;}

Is運算符語法:

<operand>is<type>同類型返回true,不同類型返回false

As運算符語法:

<operand>is<type>把一種類型轉換為指定的引用類型

?

運算符重載

public class Add2 {public int val {get; set;}public static Add2 operator ++(Add2 op1) {op1.val = 100;//設置屬性op1.val = op1.val + 2;return op1;}} class Program {static void Main(string[] args) {Add2 add = new Add2();add++;Console.WriteLine(add.val);//輸出102for (;;) ;}}

?

轉載于:https://www.cnblogs.com/feichangnice/p/5251731.html

總結

以上是生活随笔為你收集整理的C#迭代器、装箱/拆箱、重载等的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 暖暖日本在线视频 | 国产黄色片免费 | 碰碰97| 亚洲综合网在线观看 | 四季av在线一区二区三区 | 国产高清成人久久 | 午夜一级免费 | 色久在线 | 国产乱在线| 97超碰碰碰 | 日产精品一区 | 黄色动漫在线免费观看 | 白嫩情侣偷拍呻吟刺激 | av成人天堂| 麻豆综合网 | 三级免费毛片 | 天堂在线免费观看 | julia一区二区三区在线观看 | 国产大尺度视频 | 亚洲理论片 | 黄网站免费入口 | 狠狠躁日日躁 | www.色啪啪.com | a免费看| 欧美精品成人久久 | 成年人拍拍视频 | 91综合久久 | 成人一级免费视频 | 奇米第四色首页 | 国产精品一亚洲av日韩av欧 | 国产毛片在线视频 | 欧美videossex另类 | 成人午夜免费在线观看 | 性xxxx欧美老肥妇牲乱 | 国产va在线 | 9191国产精品 | 91导航| 最近最新中文字幕 | 日韩人妻一区二区三区蜜桃 | 成人资源站 | 黄视频免费看在线 | 国产一区日韩精品 | 国产一区不卡在线观看 | 国产又粗又硬又黄的视频 | 日韩欧美高清在线观看 | 怡红院成人影院 | 日本做爰三级床戏 | 巨大乳の揉んで乳榨り奶水 | 国产精品日韩在线观看 | 中文在线√天堂 | 国产福利91精品 | 五月婷婷综合久久 | 深夜成人福利 | 国产资源一区 | 娇妻高潮浓精白浆xxⅹ | 国产精品国语自产拍在线观看 | 久热青草 | 色涩视频在线观看 | 国内少妇精品 | 久久精品国产电影 | 国产美女永久无遮挡 | 日本a级c片免费看三区 | 日本啪啪动态图 | 男人亚洲天堂 | 欧洲一区二区在线观看 | av片在线免费观看 | 在线亚洲网站 | 中文字幕自拍 | 大白屁股一区二区视频 | 男人操女人逼逼视频 | www..99热| 成人在线视频一区二区 | 午夜在线看 | 一本大道久久精品 | 怡红院久久 | 国产精品尤物 | 五十路熟母 | 亚洲大胆人体 | 成人一区二区视频 | 高h捆绑拘束调教小说 | 99草视频 | 国产精品不卡一区二区三区 | 小宝贝真紧h军人h | 艳妇臀荡乳欲伦交换h漫 | 嫩草伊人久久精品少妇av | 欧美一区在线看 | 亚洲成人黄色影院 | 日本高清视频www | 波多野结衣50连登视频 | 三级视频国产 | 天天干在线播放 | 亚洲一区二区动漫 | 狠狠狠狠狠狠干 | 久久成人人人人精品欧 | 国产欧美精品aaaaaa片 | 夜夜看av | 精品欧美乱码久久久久久 | 美女福利视频一区 | 亚洲天天视频 |