C#学习系列之泛型类

74 阅读1分钟

C#学习系列之泛型类


泛型

泛型:模具,可以塑造很多产品。

class Cage<T>//用T可以直接替换多种类型
{
	T[] petsArray;
	public void Putln(T pet){}
	public T TakeOut(int index){}
}

class DogCage
{
	Dog[] petsArray;
	public void Putln(Dog pet){}
	public Dog TakeOut(int index){}
}
class CatCage
{
	Cat[] petsArray;
	public void Putln(Cat pet){}
	public Cat TakeOut(int index){}
}
var dogCage=new Cage<Dog>();
var catCage=new Cage<Cat>();

需要多种方式使用的时候,就可以直接用T来实例化进行使用。 T可以是object,类型会比较宽泛,需要显式转换类型。

class Cage<T>{}//泛型类声明
Cage<Dog> dogCage;//Cage<Dog>类型的引用
dogCage=new Cage<Dog>();//构造实例

多次实例化就可以使用,只要维护模板,易于维护。

public class Cage<T>
{
	T[] array;
	readonly int Size;
	int num;
	public Cage(int n)
	{
		Size =n;
		num=0;
		array=new T[Size];
	}
	public void Putin(T pet)
	{
		if(num<Size)
		{
			array[num++]=pet;
		}
		else
		{
			Console.writeLine("cage is full");
		}
	}
	public T TakeOut()
	{
		if(num>0)
		{
			return array[--num];
		}
		else
		{
			Console.writeLine("cage is empty");
			return default(T);
			}
		}
			
	var dogCage=new Cage<Dog>(1);//定义只有一个
	dogCage.Putin(new Dog("A");		//只放进去一个

	var dog=dogCage.TakeOut();//把A取出来
	dog.PrintName();
	

通过上述的操作,只需要定义一个就可以后续替换,多次实例化来进行使用。

总结

学习记录 www.imooc.com/video/14238