天天看點

CYQ.Data 輕量資料通路層(二) 構造資料單元(上)

datatable,你有多豐富:

CYQ.Data 輕量資料通路層(二) 構造資料單元(上)

輕輕的打開reflector.exe,按下f3搜尋,輸入datatable,輕按兩下定位,右鍵,disassemble之後,

悄悄的點一下最下面的 expand methods,再從容的把它copy出來,我們才發現。。6000多行的代碼

我們常用的datatable一個類,才用了6000多行代碼實作,跟我們以前寫的,一個類寫到一千多,就覺得有點過了

大巫見小巫啊!

CYQ.Data 輕量資料通路層(二) 構造資料單元(上)

解析:

CYQ.Data 輕量資料通路層(二) 構造資料單元(上)

當然了,不是說一個類代碼越多,性能就一定不好。至少我們還是那麼多人前擁後擠的在繼續使用。

大而廣,考慮詳細,是因為面對的人群多。

針對目前這個資料通路層中,我們所需要的功能,并不需要那麼多,我們隻需要最常用的功能即可了,

即可以把表直接綁定控件,并通路資料行,資料列,資料單元和資料的資料庫類型,

CYQ.Data 輕量資料通路層(二) 構造資料單元(上)

是以:

我們開始了自定義,在自定義中,我們并不繼承和datatable相關的東西。我們一步一步的建構屬于自己的輕量級的table類

下面開始構造自己的mdatatable系列類:

一.單元格:mdatacell

我們先來看我們常用的表現的一行資料,如下圖:

CYQ.Data 輕量資料通路層(二) 構造資料單元(上)

描述:

CYQ.Data 輕量資料通路層(二) 構造資料單元(上)

圖檔上一覽,第一行是列頭,接下來全是資料行,那麼單元格應該包含哪些内容?這,其實是個問題。如果我們從界面上看,一個單獨的單元格,就隻有value了,

可是如果隻是value,那它又缺少了意義,因為你不知道它是屬于什麼列,簡單說,如果沒有列頭,你的資料本身的意義,就變的很難了解,

除非這個值有很深的解釋意義包含在裡頭。

CYQ.Data 輕量資料通路層(二) 構造資料單元(上)

說明:

是以,一個單元格還應該包括一個列頭解釋,于是。就會出現這麼一個現實,如果一個單元格是由頭和值組成的,那麼每一行資料,都會包括重複的列頭。

我們再仔細觀察那圖,實際上,隻有一個列頭,其餘都是值...于是,在這裡,就産生了一個可以思考的問題。

單元格需要由頭和值組成,可是,又要保證資料再多,也隻能存在一個表頭,怎麼将這個問題轉化在設計的類中??

下節解說!

版權聲明:本文原創發表于部落格園,作者為路過秋天,原文連結:http://www.cnblogs.com/cyq1162/archive/2009/11/06/1597199.html