网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ASP.net > 正文

asp.net2.0中泛型的使用

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/13

泛型的使用

前段时间在研究Petshop4.0的代码时,发现微软在业务逻辑层调用的实体类全部用的是泛型,由于没有时间一直没有发表这篇文章,这会正好有点困不愿意写代码只好把上次没有发表的东西整理一下发表了!

至于泛型的用处还有优点什么的我就不说,因为我也没有完全理解,只是知道泛型是类型安全的免除了拆箱装箱的操作,性能会好点;还有就是泛型其实就是将类参数化(一家之言)。

下面就介绍一下petshop中用到的泛型吧!

微软主要是在业务逻辑层进行操作数据库的时候用到了泛型,将实体类传过去进行操作而不是对实体类的每个属性单独操作。

下面就贴一段代码(语文水平太差,写着太费劲)

1.实体类的代码就不贴了吧(就是一些getter,setter)(微软推荐:实体类要可以序列化)

2.只是一般的测试也没有分层,把逻辑层放在表现层中间了啊

private IList<CustomersM> GetAllCustomers()

{

    IList<CustomersM> customer = new List<CustomersM>();

    using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["cc_2005"].ConnectionString))

    {

        connection.Open();

        SqlCommand command = new SqlCommand("SELECT  [CompanyName], [ContactName], [ContactTitle], [Address], [City] FROM [Customers]", connection);

        SqlDataReader sdr=command.ExecuteReader(CommandBehavior.CloseConnection);

        while (sdr.Read())

        {

            //实体类中没有初始化属性的构造函数

            /*CustomersM m = new CustomersM();

            m.CompanyName = sdr[0].ToString();

            m.ContactName = sdr.ToString();

            m.ContactTitle = sdr.ToString();

            m.Address = sdr.ToString();

            m.City = sdr.ToString();

             *

             */

            //实体类中有初始化属性的构造函数

            CustomersM m = new CustomersM(sdr[0].ToString(), sdr.ToString(), sdr.ToString(), sdr.ToString(), sdr.ToString());

            customer.Add(m);

        }

        return customer;

    }

}

 

3.这样GetAllCustomers就可以绑定到GridView,DropDownList等控件上了。

注意:IList是不能序列化的,因此当需要序列化的时候(如:webservice,由于webservice中传递的对象都是可以序列化的)必须使用System.Collections.ObjectModel.Collection< >

 

网学推荐

免费论文

原创论文

设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号