今天学到了泛型类。一个很不错的类。首先,回想下,什么叫泛型?泛型是2.0 版C#引入的一个新的功能。在官网中定义:泛型是具有占位符(类型参数)的类、结构、接口和方法,这些占位符是类、结构、接口和方法所存储或使用的一个或多个类型的占位符。泛型集合类可以将类型参数用作它所存储的对象的类型的占位符;类型参数作为其字段的类型和其方法的参数类型出现。泛型方法可以将其类型参数用作其返回值的类型或者其形参的类型之一。
使用语法:Generic<T> variable=new Generic<T>();
最大的特点是: 参数T,取Type的T字母,是用来接受调用该类所指定的数据类型,可以是任意的类型。
例子:Generic<string> test=new Generic<string>();
使用泛型,能保证类型安全,因为通过允许指定泛型或方法操作的类型,泛型功能将类型安全的任务转移给了编译器。在编程里,我们对数组的使用非常频繁。如果要使用能无限递增数组的长度,而不是指定数组的长度,我们就很快想到了使用System.Collections中的ArrayList和System.Collections.Generic中的List,ArrayList在Add()方法中能接受不同数据类型的输入,这样并不能保证了类型的安全,在我们需要输出ArrayList对象的数据时,转换数据可能会出现异常。然而List在Add()方法里只能接受指定的数据类型,这就在源头上阻止了。所以我们最好使用List,而不是ArrayList。
///以下是自己自定义的一个泛型类,可是功能并不完整。。。。不过也可以大体了解下泛型的内部机制了。呵呵
public class MyList<T>
{
private T[] array;
public int lenght = 16;
private int index;
public MyList()
{
array = new T[lenght];
}
public T this[int index] //索引器
{
get
{
return array[index];
}
set
{
array[index] = value;
}
}
public void Add(T item)
{
array[index++] = item;
}
public int IndexOf(T item)
{
return -1;
}
}
{
private T[] array;
public int lenght = 16;
private int index;
public MyList()
{
array = new T[lenght];
}
public T this[int index] //索引器
{
get
{
return array[index];
}
set
{
array[index] = value;
}
}
public void Add(T item)
{
array[index++] = item;
}
public int IndexOf(T item)
{
return -1;
}
}
转载于:https://blog.51cto.com/edward911/315733