国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

自定義集合初始化器

2019-11-17 03:04:31
字體:
供稿:網(wǎng)友

自定義集合初始化器

對int類型集合初始化,這樣寫:

static void Main(string[] args)        {            var list = new List<int> {0, 1};            foreach (var item in list)            {                Console.WriteLine(item);            }            Console.ReadKey();        }

對鍵值對集合初始化,這樣寫:

static void Main(string[] args)        {            var dic = new Dictionary<string, string>            {                {"location", "qingdao"},                {"street","lingchuang"}            };            foreach (var item in dic)            {                Console.WriteLine("{0}:{1}", item.Key, item.Value);            }            Console.ReadKey();        }

編譯器是如何"讀懂"集合初始化器?--編譯器根據(jù)慣例來理解集合初始化器,即約定:如果一個類型實現(xiàn)IEnumerable<T>接口,并且提供了Add(object obj)方法,該類型可以使用集合初始化器。

假設,我們想通過一個集合初始化器來定義一個模特的集合,以胸圍、腰圍、臀圍作為集合初始化器的參數(shù):

var list = new MoTes{    {79, 60, 89},    {82, 63, 90}};

{79, 60, 89}就像int類型一樣,是一個數(shù)據(jù)結構,把它定義成結構類型:

public struct SanWei    {        public readonly double _Xiong;        public readonly double _Yao;        public readonly double _Tun;        //構造函數(shù)的參數(shù)類型、順序和數(shù)量決定了集合初始化器的參數(shù)類型、順序和數(shù)量        public SanWei(double xiong, double yao, double tun)        {            _Xiong = xiong;            _Yao = yao;            _Tun = tun;        }    }

而想讓MoTes類可以使用集合初始化器,需要滿足2個條件:1、實現(xiàn)IEnumerable<SanWei>接口2、提供Add(double xiong, double yao, double tun)方法

public class MoTes : IEnumerable<SanWei>    {        PRivate readonly List<SanWei> _motes;        public MoTes()        {            _motes = new List<SanWei>();        }        public void Add(double xiong, double yao, double tun)        {            _motes.Add(new SanWei(xiong, yao, tun));        }        public IEnumerator<SanWei> GetEnumerator()        {            return _motes.GetEnumerator();        }        IEnumerator IEnumerable.GetEnumerator()        {            return GetEnumerator();        }    }

在客戶端:

static void Main(string[] args)        {            var list = new MoTes()            {                {79, 60, 89},                {82, 63, 90}            };            foreach (var item in list)            {                Console.WriteLine("胸圍:{0},腰圍:{1},臀圍:{2}",item._Xiong, item._Yao, item._Tun);            }            Console.ReadKey();        }

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 庆城县| 淅川县| 从化市| 乐清市| 当阳市| 博爱县| 汉沽区| 宁乡县| 道孚县| 安新县| 孟村| 五原县| 梁平县| 垫江县| 湘潭县| 白城市| 平罗县| 惠东县| 瑞昌市| 林西县| 印江| 沈丘县| 尤溪县| 元朗区| 新乡县| 普兰县| 梁山县| 乐至县| 溆浦县| 威海市| 富阳市| 丰镇市| 五峰| 安国市| 巴南区| 宜丰县| 温泉县| 黄梅县| 晋江市| 乾安县| 宣恩县|