由于工作原因,目前我们做项目还一直在用.Net1.1,为了不使自己落后,业余时间用.net做个小东西出来,一方面熟习下语言新东西,另一方面为以后打基础。
.net 2.0推出了"泛型"这一概念,查了些资料说是为了解决类型转化安全性
在我看来,它就是一个ArrayList的代替品,呵呵。。。
我下边写了两个方法可以说话这一点(只是把代码垒出来了,也不知道对不对)
泛型:
public StorehouseModel[] GetAllStorehouse(Guid userid)
{
string sql = "SELECT id FROM Storehouse WHERE CreateUser=@uid";
SqlCommand cmd = new SqlCommand(sql);
cmd.Parameters.Add(DataAccess.CreateSqlParameterUniqueIdentifier("@uid", userid));
List<StorehouseModel> _sm = new List<StorehouseModel>();
SqlDataReader dr = DataAccess.ExcuteQuery(cmd);
Guid sid = Guid.NewGuid();
while (dr.Read())
{
sid = (Guid)dr[0];
_sm.Add(GetModel(sid));
}
dr.Close();
return (StorehouseModel[])_sm.ToArray();
}
{
string sql = "SELECT id FROM Storehouse WHERE CreateUser=@uid";
SqlCommand cmd = new SqlCommand(sql);
cmd.Parameters.Add(DataAccess.CreateSqlParameterUniqueIdentifier("@uid", userid));
List<StorehouseModel> _sm = new List<StorehouseModel>();
SqlDataReader dr = DataAccess.ExcuteQuery(cmd);
Guid sid = Guid.NewGuid();
while (dr.Read())
{
sid = (Guid)dr[0];
_sm.Add(GetModel(sid));
}
dr.Close();
return (StorehouseModel[])_sm.ToArray();
}
ArrayList:
public StorehouseModel[] StorehouseModel(Guid userid)
{
string sql = "SELECT id FROM Storehouse WHERE CreateUser=@uid";
SqlCommand cmd = new SqlCommand(sql);
cmd.Parameters.Add(DataAccess.CreateSqlParameterUniqueIdentifier("@uid", userid));
System.Collections.ArrayList al = new System.Collections.ArrayList();
SqlDataReader dr = DataAccess.ExcuteQuery(cmd);
Guid sid = Guid.NewGuid();
while (dr.Read())
{
sid = (Guid)dr[0];
al.Add(GetModel(sid));
}
dr.Close();
return (StorehouseModel[])al.ToArray(typeof(StorehouseModel));
}
{
string sql = "SELECT id FROM Storehouse WHERE CreateUser=@uid";
SqlCommand cmd = new SqlCommand(sql);
cmd.Parameters.Add(DataAccess.CreateSqlParameterUniqueIdentifier("@uid", userid));
System.Collections.ArrayList al = new System.Collections.ArrayList();
SqlDataReader dr = DataAccess.ExcuteQuery(cmd);
Guid sid = Guid.NewGuid();
while (dr.Read())
{
sid = (Guid)dr[0];
al.Add(GetModel(sid));
}
dr.Close();
return (StorehouseModel[])al.ToArray(typeof(StorehouseModel));
}