runxinzhi.com
首页
百度搜索
C#自定义泛型
using System; using System.Collections.Generic; using System.Text; namespace CustomGenericCollection { #region 汽车的定义 public class Car { public string PetName; public int Speed; public Car(string name, int currentSpeed) { PetName = name; Speed = currentSpeed; } public Car() { } } public class SportsCar : Car { public SportsCar(string p, int s) : base(p, s) { } // 其他方法 } public class MiniVan : Car { public MiniVan(string p, int s) : base(p, s) { } // 其他方法 } #endregion #region 自定义泛型集合 public class CarCollection<T> : IEnumerable<T> where T : Car//:下面的泛型集合类的项目必须是Car 或Car的继承类 { private List<T> arCars = new List<T>(); public T GetCar(int pos) { return arCars[pos]; } public void AddCar(T c) { arCars.Add(c); } public void ClearCars() { arCars.Clear(); } public int Count { get { return arCars.Count; } } // IEnumerable<T>扩展自IEnumerable的,因此,我们需要实现的GetEnumerator()方法的两个版本。 System.Collections.Generic.IEnumerator<T> IEnumerable<T>.GetEnumerator() { return arCars.GetEnumerator(); } System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { return arCars.GetEnumerator(); } public void PrintPetName(int pos) { Console.WriteLine(arCars[pos].PetName); } } #endregion class Program { static void Main(string[] args) { Console.WriteLine("***** Custom Generic Collection *****\n"); CarCollection<Car> myCars = new CarCollection<Car>(); myCars.AddCar(new Car("Rusty", 20)); myCars.AddCar(new Car("Zippy", 90)); foreach (Car c in myCars) { Console.WriteLine("PetName: {0}, Speed: {1}", c.PetName, c.Speed); } Console.WriteLine(); // CarCollection<Car> can hold any type deriving from Car. CarCollection<Car> myAutos = new CarCollection<Car>(); myAutos.AddCar(new MiniVan("Family Truckster", 55)); myAutos.AddCar(new SportsCar("Crusher", 40)); foreach (Car c in myAutos) { Console.WriteLine("Type: {0}, PetName: {1}, Speed: {2}", c.GetType().Name, c.PetName, c.Speed); } Console.ReadLine(); } } }
相关阅读:
Hdu 5396 Expression (区间Dp)
Lightoj 1174
codeforces 570 D. Tree Requests (dfs)
codeforces 570 E. Pig and Palindromes (DP)
Hdu 5385 The path
Hdu 5384 Danganronpa (AC自动机模板)
Hdu 5372 Segment Game (树状数组)
Hdu 5379 Mahjong tree (dfs + 组合数)
Hdu 5371 Hotaru's problem (manacher+枚举)
Face The Right Way---hdu3276(开关问题)
原文地址:https://www.cnblogs.com/zhangqs008/p/2398688.html
最新文章
CF1027C Minimum Value Rectangle【贪心/公式化简】
ZOJ 3872 Beauty of Array【无重复连续子序列的贡献和/规律/DP】
LCA算法笔记
ST表算法笔记
二分图匹配算法笔记
矩阵快速幂算法笔记
CSU 2151 集训难度【多标记线段树】
HDU 3485【101】 51nod 1668【010】 joj 2171【111】动态规划
线段树算法笔记
单调队列/单调栈算法笔记
热门文章
POJ 1062 昂贵的聘礼 【带限制的最短路/建模】
KMP算法笔记
CF #502
字典树&01字典树算法笔记
POJ 1200 Crazy Search【Hash入门】
字符串匹配&Rabin-Karp算法讲解
POJ 3259 Wormholes【最短路/SPFA判断负环模板】
POJ 1860 Currency Exchange【SPFA判环】
如何判断图中存环(正&负)
Poj 2516 Minimum Cost (最小花费最大流)
Copyright © 2020-2023
润新知