最近在做个小项目,时间比较充足,很想努力做“经典”点。看到petshop4.0的架构真得是太经典,难免想深究深究了,不啰嗦了,这篇文章是说范型的嘛。petshop里反射机制、范型编程几乎到处都是,范型是干吗的呢?有什么好处呢?
范型是高效的、是更好发代码复用、能赋予代码更强的类型安全、包含了更清晰的约束的。这么多好处,讲讲范型咋定义的吧?范型就是通过参数化类型实现在同一份代码上操作多种数据类型。范型编程是一种编程范式,利用“参数化类型”将类型抽象化,从而实现更灵活的复用。C#的范型支持的包括类、结构、接口、委托四种范型类型。
这个是最近项目里DAL里的一个方法,过去比较喜欢使用强大的DataSet来处理Query出来的数据,这回打算用范式编程了。其实都是可以的,DataSet的强大和易用性更是很轻松的让很多开发人员接受。Ilist接口很多地方能被很好的用到。显示数据的时候直接把它给数据显示控件的DataSource就可以了,很方便。

/**//// <summary>
/// Query for all user info.
/// The results will include all user info.
/// </summary>
/// <returns></returns>

public static IList<DE.User> GetUsersBySearch() ...{
IList<DE.User> usersBySearch = new List<DE.User>();


using ( SqlDataReader sdr = SqlHelper.ExecuteReader( SqlHelper.ConnectionString, CommandType.StoredProcedure, "MS_User_GetUsersBySearch" ) ) ...{

while ( sdr.Read() ) ...{

DE.User user = new DE.User( sdr.GetInt32( 0 ), sdr.GetBoolean( 1 ), sdr.GetDateTime( 2 ), sdr.GetDateTime( 3 ), sdr.GetString( 4 ),
sdr.GetString( 5 ), sdr.GetString( 6 ), sdr.GetString( 7 ), sdr.GetString( 8 ), sdr.GetString( 9 ) );//, sdr.GetString(10));
usersBySearch.Add( user );
}
}
return usersBySearch;
}
范型是高效的、是更好发代码复用、能赋予代码更强的类型安全、包含了更清晰的约束的。这么多好处,讲讲范型咋定义的吧?范型就是通过参数化类型实现在同一份代码上操作多种数据类型。范型编程是一种编程范式,利用“参数化类型”将类型抽象化,从而实现更灵活的复用。C#的范型支持的包括类、结构、接口、委托四种范型类型。
这个是最近项目里DAL里的一个方法,过去比较喜欢使用强大的DataSet来处理Query出来的数据,这回打算用范式编程了。其实都是可以的,DataSet的强大和易用性更是很轻松的让很多开发人员接受。Ilist接口很多地方能被很好的用到。显示数据的时候直接把它给数据显示控件的DataSource就可以了,很方便。

/**//// <summary>
/// Query for all user info.
/// The results will include all user info.
/// </summary>
/// <returns></returns>
public static IList<DE.User> GetUsersBySearch() ...{
IList<DE.User> usersBySearch = new List<DE.User>();

using ( SqlDataReader sdr = SqlHelper.ExecuteReader( SqlHelper.ConnectionString, CommandType.StoredProcedure, "MS_User_GetUsersBySearch" ) ) ...{
while ( sdr.Read() ) ...{
DE.User user = new DE.User( sdr.GetInt32( 0 ), sdr.GetBoolean( 1 ), sdr.GetDateTime( 2 ), sdr.GetDateTime( 3 ), sdr.GetString( 4 ),
sdr.GetString( 5 ), sdr.GetString( 6 ), sdr.GetString( 7 ), sdr.GetString( 8 ), sdr.GetString( 9 ) );//, sdr.GetString(10));
usersBySearch.Add( user );
}
}
return usersBySearch;
}
本文探讨了范型编程的概念及其在代码复用与类型安全性方面的好处,并通过一个具体的数据访问层方法示例展示了如何在实际项目中应用范型。
1111

被折叠的 条评论
为什么被折叠?



