泛型简介
所谓泛型:即通过参数化类型来实现在同一份代码上操作多种数据类型。泛型编程是一种编程范式,它利用“参数化类型”将类型抽象化,从而实现更为灵活的复用。
C#泛型赋予了代码更强的类型安全,更好的复用,更高的效率,更清晰的约束。
using System;
using System.Collections;
/// <summary>
/// Disk 的摘要说明
/// </summary>
public class Disk<T> : IEnumerable
{
private T[] store;
private int size;
public Disk(int capacity)
{
store = new T[capacity];
size = 0;
}
//实现foreach遍历
public IEnumerator GetEnumerator()
{
return store.GetEnumerator();
}
public void Push(T x)
{
store[size++] = x;
}
//索引器for遍历
public T this[int index]
{
get
{
if (index > 0 && index < size)
{
return store[index];
}
return default(T);
}
set
{
if (index > 0 && index < size)
{
store[index] = value;
}
}
}
}
//==========================================================================
Disk<int> disk = new Disk<int>(10);
for (int i = 0; i < 10; i++)
{
disk.Push(i+1);
}
for (int j = 0; j < 10; j++)
{
Response.Write(disk[j]);
}
foreach (int ch in disk)
{
Response.Write(ch);
}
using System.Collections.Generic;
public partial class fanxing : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string strout = "";
List<Users> lists = new List<Users>();
lists = getAll();
foreach (Users users in lists)
{
strout += users.user_name + "_____" + users.user_age.ToString() + "<br/>";
}
Response.Write(strout);
}
private List<Users> getAll()
{
Users myusers;
List<Users> listusers = new List<Users>();
for (int i = 1; i < 20; i++)
{
myusers = new Users();
myusers.user_name = "chen jian ping" + i.ToString();
myusers.user_age = i++;
listusers.Add(myusers);
}
return listusers;
}
}