多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全I(xiàn)T社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > 互聯(lián)網(wǎng) > ConvertHelper與泛型集合

ConvertHelper與泛型集合

來源:程序員人生   發(fā)布時(shí)間:2014-11-08 08:14:28 閱讀次數(shù):3362次

            在機(jī)房重構(gòu)時(shí),我們常常會用到ConvertHelper。它把從http://www.vxbq.cn/db/中查詢到的dateTable(也是1個(gè)臨時(shí)表)轉(zhuǎn)化為泛型,然后再填充到DataGridView控件中。ConvertHelper類有兩點(diǎn)體現(xiàn)了面向?qū)ο蟮乃枷搿?是由于它是常常被使用而被封裝起來的類;2是由于它的返回值是泛型集合,泛型集合使存儲數(shù)據(jù)時(shí)靈活而安全,也體現(xiàn)了面向?qū)ο蟮乃枷搿?/span>


ConvertHelper與sqlHelper

           
           1開始接觸ConvertHelper,以為它和sqlHelper1樣,后來發(fā)現(xiàn)它們由于作用不同援用的命名空間不1樣。以下是各個(gè)命名空間的含義。

        System

        包括用于定義經(jīng)常使用值和援用數(shù)據(jù)類型、事件和事件處理程序、接口、屬性和處理異常的基礎(chǔ)類和基類。其他類提供支持以下操作的服務(wù):數(shù)據(jù)類型轉(zhuǎn)換,方法參數(shù)操作,數(shù)學(xué)計(jì)算,遠(yuǎn)程和本地程序調(diào)用,利用程序環(huán)境管理和對托管和非托管利用程序的監(jiān)管。 

        System.Data

        包括組成大部份 ADO.NET 結(jié)構(gòu)的類。ADO.NET 結(jié)構(gòu)使您可以生成可用于有效管理來自多個(gè)數(shù)據(jù)源的數(shù)據(jù)的組件。在斷開連接的方案(如 Internet)中,ADO.NET 提供了1些可以在多層系統(tǒng)中要求、更新和調(diào)和數(shù)據(jù)的工具。ADO.NET 結(jié)構(gòu)也能夠在客戶端利用程序(如 Windows 窗體)或 ASP.NET 創(chuàng)建的 HTML 頁中實(shí)現(xiàn)。

        System.Configuration 

    命名空間包括具有以下用處的類型:處理配置數(shù)據(jù),如計(jì)算機(jī)或利用程序配置文件中的數(shù)據(jù)。子命名空間包括具有以下用處的類型:配置程序集,編寫組件的自定義安裝程序,支持用于在客戶端和http://www.vxbq.cn/server/利用程序中添加或刪除功能的可插入模型。

       System.Collections

       包括定義各種對象集合(如列表、隊(duì)列、位數(shù)組、哈希表和字典)的接口和類。

       System.Collections.Generic

       包括定義泛型集合的接口和類;泛型集合允許用戶創(chuàng)建強(qiáng)類型的集合,這類集合在類型安全和性能上均優(yōu)于非泛型強(qiáng)類型集合。

        ConvertHelper返回的是泛型集合,所以我們要援用System.Collections.Generic,大大提高效力和安全性能


泛型集合


             泛型集合在學(xué)習(xí)大話設(shè)計(jì)模式的時(shí)候接觸過,這次又重新學(xué)習(xí)了1遍。數(shù)組我們都清楚,用來實(shí)現(xiàn)數(shù)據(jù)的連續(xù)存儲,其實(shí)我們在用vb6敲系統(tǒng)時(shí)就用數(shù)組,但是數(shù)組最大的缺點(diǎn)就是創(chuàng)建時(shí)須指定數(shù)組變量的大小,在兩個(gè)元素之間添加元素也比較困難。到了vs平臺,就引入了集合、泛型的概念。
             集合簡言之,就是能克服上述缺點(diǎn)實(shí)現(xiàn)對數(shù)據(jù)的存儲。可根據(jù)元素的多少自動重新分配。后來在使用進(jìn)程中,為了不因調(diào)用數(shù)據(jù)時(shí)產(chǎn)生數(shù)據(jù)類型不同而致使http://www.vxbq.cn/db/的不安全,又引入了泛型。我們的ConvertHelper類返回泛型集合,就是創(chuàng)建強(qiáng)類型的集合。


代碼

Imports System.Collections.Generic '添加檢討集合的命名空間 Imports System.Reflection '添加反射的命名空間 Public Class ConvertHelper '將DataTable轉(zhuǎn)化為泛型集合 Public Shared Function ConvertTolist(Of T As New)(ByVal dt As DataTable) As IList(Of T) Dim myList As List(Of T) = New List(Of T)() '定義放回的集合 Dim myType As Type = GetType(T) '得到實(shí)體類的類型名 Dim tempName As String = String.Empty '定義1個(gè)臨時(shí)變量 Dim dr As DataRow '定義行集 '遍歷DataTable的所有數(shù)據(jù)行 For Each dr In dt.Rows Dim myT As New T '創(chuàng)建1個(gè)實(shí)體類的對象 Dim arrayPi As PropertyInfo() = myT.GetType().GetProperties() '定義屬性集合 Dim pi As PropertyInfo '遍歷pi對象的所有屬性 For Each pi In arrayPi tempName = pi.Name '將屬性名稱復(fù)制給臨時(shí)變量 '檢查DataTable是不是包括此列(列名==對象的屬性名) If (dt.Columns.Contains(tempName)) Then '將此屬性與DataTable里的列名比較 '判斷此屬性是不是有setter If (pi.CanWrite = False) Then '判斷此屬性是不是可寫,如果不可寫,跳出本次循環(huán) Continue For End If Dim value As Object = dr(tempName) '定義1個(gè)對象型的變量來保存列的值 '如果非空,則賦給對象的屬性 If (value.ToString() <> DBNull.Value.ToString()) Then pi.SetValue(myT, value, Nothing) End If End If Next myList.Add(myT) '添加到集合 Next Return myList '返回實(shí)體集合 End Function End Class



結(jié)


          之前對面向?qū)ο蟮睦斫馐欠庋b、繼承、多態(tài),隨著1步步的學(xué)習(xí),我們還會了解接口、集合、泛型、拜托、客套等1系列概念。它們使程序更安全、靈活……


生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 久久美女福利视频 | 亚洲成年人影院 | 国产成人精品日本亚洲语音1 | 国产丰满眼镜女在线观看 | 极品美女国产精品免费一区 | 最近最新中文字幕在线第一页 | 亚洲 成人 欧美 自拍 | 日本一区二区免费在线观看 | 免费观看又污又黄网站日本 | 中文无码日韩欧免费视频 | 性欧美video视频另类 | 亚洲欧美日韩中文字幕网址 | 麻豆片免费观看在线看 | 欧美日韩亚洲国产精品 | 国产成人精品三区 | 国产亚洲欧美ai在线看片 | 国产福利观看 | 亚洲乱码专区一区二区三区 | 一区二区精品 | 欧美刺激午夜性久久久久久久 | 视频三区| 国产精品欧美一区二区三区不卡 | 国产亚洲欧美一区二区三区 | 国产成人免费视频 | a级片日韩| 免费国产阿v视频在线观看 免费国产成高清人在线视频 | 麻豆精品国产免费观看 | 手机看片福利日韩国产 | 亚洲一区毛片 | 国产精品视频视频久久 | 欧美办公室系列激情videos | 亚洲国产高清在线精品一区 | 亚洲国产成人资源在线桃色 | 午夜一级精品免费毛片 | 小说区图片区综合视频区 | 美女免费网站视频 | 亚洲精品一区亚洲精品 | 欧美成人在线影院 | 国产免费久久精品 | 中文字幕不卡一区 二区三区 | 免费一级欧美片在线观免看 |