日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > ConvertHelper與泛型集合

ConvertHelper與泛型集合

來源:程序員人生   發布時間:2014-11-08 08:14:28 閱讀次數:3365次

            在機房重構時,我們常常會用到ConvertHelper。它把從http://www.jyygyx.com/db/中查詢到的dateTable(也是1個臨時表)轉化為泛型,然后再填充到DataGridView控件中。ConvertHelper類有兩點體現了面向對象的思想。1是由于它是常常被使用而被封裝起來的類;2是由于它的返回值是泛型集合,泛型集合使存儲數據時靈活而安全,也體現了面向對象的思想。


ConvertHelper與sqlHelper

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

        System

        包括用于定義經常使用值和援用數據類型、事件和事件處理程序、接口、屬性和處理異常的基礎類和基類。其他類提供支持以下操作的服務:數據類型轉換,方法參數操作,數學計算,遠程和本地程序調用,利用程序環境管理和對托管和非托管利用程序的監管。 

        System.Data

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

        System.Configuration 

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

       System.Collections

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

       System.Collections.Generic

       包括定義泛型集合的接口和類;泛型集合允許用戶創建強類型的集合,這類集合在類型安全和性能上均優于非泛型強類型集合。

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


泛型集合


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


代碼

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




          之前對面向對象的理解是封裝、繼承、多態,隨著1步步的學習,我們還會了解接口、集合、泛型、拜托、客套等1系列概念。它們使程序更安全、靈活……


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产精品久久久久久久久久三级 | 在线观看av网 | 一级一级一级毛片 | 欧美日韩精品在线 | 在线亚洲一区二区 | 日本三级视频 | 岳的好大精品一区二区三区 | 国产免费一区二区三区在线能观看 | 欧美一区在线视频 | 欧美男男videos | 久久夜色精品国产 | 久久久久国产一级毛片高清网站 | 日韩视频在线观看 | 精品在线免费观看 | 99久久这里只有精品 | 一区二区三区日韩欧美 | 99久久综合 | 岛国av网址| 国产日产久久高清欧美一区 | 日韩精品无码一区二区三区 | 亚洲三级在线看 | 国产一区二区在线播放 | 国产精品久久av | 在线中文 | 免费的a级片 | 国产人成亚洲第一网站在线播放 | 午夜在线影院 | 88xx永久免费看大片 | 日韩av手机免费在线观看 | 在线a毛片免费视频观看 | 日韩成人在线观看 | 日韩精品视频在线播放 | 欧美日韩国产不卡 | 欧美在线视频播放 | 欧美国产三级 | 午夜av一区| 国产精品久久久久久久第一福利 | 亚洲精品久久久久中文字幕欢迎你 | 中文字幕免费观看 | 亚洲一区久久 | 国产精品精品久久久 |