今天学习了与泛型相关的新知识。
首先,我们看一下什么叫做泛型:就是创建使用通用类型的类或方法。泛型旨在改进二进制代码的重用,性能,易于阅读,类型安全这些方面。
System.Collections.Generics命名空间中,包含大量类和接口,其中的接口也都模拟了System. Collections命名空间下相应的非泛型类型。下面是几个例子:
ICollection<T>
IComparer<T>
IDictionary<TKey,TValue>
IEnumerable<T>
IEnumerator<T>
IList<T>
下面我们来定义一个泛型方法:
public void Swap<T>(ref T a, ref T b)
{
T temp;
temp = a;
a = b;
b = temp;
}
一个泛型方法是在方法名称后、参数列表前定义类型参数的。上面的方法中,可以操作任意两个<T>类型的参数。
下面我们再定义一个泛型类,和前面用到的数据库编辑类(SqlHelper)类似,可以省去写太多的重复代码。
public class Point<T>{
private T xPos;
private T yPos;
public Point(T x, T y) {
xPos = x;
yPos = y;
}
public T X{
get { return xPos; }
set { this.xPos = value; }
}
public T Y{
get { return yPos; }
set { this.yPos = value; }
}
public override string ToString()
{
return string.Format("x:{0};y:{1}"
, xPos, yPos);
}
}
这个类建好了,在项目中就可以自由引用了。
但是,今天的泛型类掌握的不是很好,要增强练习。