|
一、泛型的优点 性能高。从前面的例子可以看出使用不需进行类型转换,可以避免装箱和拆箱操作,提高性能。 使用泛型 泛型集合List<T> List<T> 集合名=new List<T>(); 在泛型定义中,泛型类型参数“<T>”是必须指定的,其中T是定义泛型类时的占位符,其并不是一种类型,仅代表某种可能的类型。在定义时T会被使用的类型代替。泛型集合List<T>中只能有一个参数类型,“<T>”中的T可以对集合中的元素类型进行约束。 如定义一个学生类的List<T>,示例如下: List<T>添加、删除、检索元素的方法和ArrayList相似,明显的特点是不需要像ArrayList那样装箱和拆箱。 using System; 上面代码定义了Student类型的List<T>泛型集合,其中的T被数据类型Student代替,这样定义的集合只能存储Student类型的元素,保证了类型安全,遍历集合元素时,没有经过拆箱操作,提高了性能。 List<T>和ArrayList的区别 我们再看一个例子: using System; 可以看到,泛型集合大大简化了集合的实现代码,通过它,可以轻松创建指定类型的集合。非但如此,泛型集合还提供了更加强大的功能,下面看看其中的排序及搜索。 |
----以下利用泛型来实现COMBOX控件的数据加载
public class vendor
{
private string _UserCode;
private string _VendorDes;
public string VendorDes
{
get { return _VendorDes; }
set { _VendorDes = value; }
}
public string UserCode
{
get { return _UserCode; }
set { _UserCode = value; }
}
public vendor(string display, string value)
{
_VendorDes = display;
_UserCode = value;
}
public vendor() { }
}
/// <summary>
/// 取得供应商名称
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public List<Model.vendor>GetVendList()
{
List<Model.vendor> lstV = new List<Model.vendor>();
string sql = string.Format("select code,vendordes from vendor");
using (SqlDataReader dr = SqlHelper.ExecuteReader(SqlHelper.conn, CommandType.Text, sql))
{
while (dr.Read())
{
lstV.Add(new Model.vendor(dr["code"].ToString().Trim (), dr["vendordes"].ToString().Trim ()));
}
}
return lstV;
}
//测试COMBOX
BLL.PO vd = new BLL.PO();
List<Model.vendor> lst =new List<Model.vendor>();
lst =vd.GetVendList();
foreach (Model.vendor v in lst)
{
string code = v.UserCode;
string vendor = v.VendorDes;
comboBox1.Items.Add(vendor);
comboBox1.DisplayMember = code;
comboBox1.ValueMember = vendor;
}
铁观音-厂家直销
472

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



