1. 程式人生 > >小總結

小總結

查詢 容易 也好 新的 方言 開發 快速開發 情況 動手

之前定小目標時是8.29,現在是9.19,已經過了20天了,之前想要的東西也基本上收集好了。

之前定下要學習的有{1.Linq,2.擴展方法,3.反射,4.Xml讀寫,5.用到了再學正則、網抓等技術}

我知道我要學習研究的不是什麽最新的技術,之前也看了很多文章介紹這些東西,但C#有嚴格的語法,很多東西具體寫起來是不能模棱兩可的。看看文章覺得這東西很好,但一寫就錯的我,一直懶於去靜下心來學習。這次學習也只是淺嘗輒止,因為知道自己懶,所以沒有定下太高的目標。但既然學習了,那就總結反思下,對以後的學習也有好處。

首先,Linq是最符合我需求的。

最開始以為Linq就是可以查詢,沒有其他作用。所以一直使用Linq+foreach()語句來操作一些集合。但實際上在select子句中是可以用函數操作集合中的元素的。所以最終看來,Linq既能夠遍歷搜索集合,又能對搜到的東西進行操作,簡直是萬能的。我們的編程的核心一般都是對一些集合進行變形和計算。數組+for循環寫起來費腦子,可讀性也差。而Linq,只需要想好做什麽,說出來,就不用管具體對數據怎麽操作了。然後你讀一遍就能得知大體意思。

Linq容易編寫,可讀性好,能夠搜索,能夠操作。

對數據的操作,一下子就能寫好,太適合快速開發了。

然後,我發現擴展方法不應該常用

我寫了一個對象集合轉成對象集合的方法,命名為ToDataTable()了。然後用的時候望文生義,以為可以把普通集合,裝到DataTable裏去了,結果就是報錯。

最後,想了一段時間。我覺得一開始封裝一段代碼的時候,應該先封裝成靜態方法。

一段代碼一開始封裝的時候應該封裝靜態方法,編寫使用都簡單,且修改方便。

封裝靜態方法很簡單,簡單也好用。也便於接下來改成對象方法,或者擴展方法,如果真的有必要。

之後,反射我封裝了兩個方法

就是把對象集合轉為DataTable和DataTable轉為對象集合的兩個方法。

我覺得我的這個需求也是因為C#是一種面向對象的語言。

面向對象,類模型是樹形的;而我們常用的高效的存儲方式是二維表形式的;所以需要把看上去是樹的東西,轉為看上去是二維表的東西。

而面向對象的編程,輾轉於樹形模型和二維表模型;一邊是方便人理解和操作數據,另一邊是方便計算機存儲數據。

再之後,Xml沒什麽說的

它就是一種存儲方式。而我只是簡單的封裝了XmlSet類,讓其可以AddDataTable(),和Save()而已。

Xml很好,解決了少量數據的存儲問題,而且是樹形的。

再之後,其他的就以後學習了

懶惰如我,用到了再學習吧。

最後,是一個總結

我發現,我現在的需求和問題,大部分是由於C#語言的一些特點而引起的,也有一部分是任何語言編程都需要的。

首先是C#一般的部分

  • 想要Linq這樣的東西是因為編程語言語法都太嚴格、不易懂了,C#還是C風格的。
  • 想要XML也是因為一般編程都需要存取數據。

然後是C#特殊的部分

  • 想要把對象和二維表互轉,是因為C#是面向對象的
  • 煩惱於類型問題,是因為C#是強類型的

接下來的煩惱和方向

首先要加強Linq,因為Linq好用,適合快速開發。

然後類型問題。C#強類型,很煩惱,可能多用,多熟悉就好了吧。每種類的方法,不熟悉的話,感覺跟方言似的,實在不懂,還是說我英語太弱了,不會猜呢?

還有感覺有些控件好難用,是深入學習怎麽用,還是從網上找個好用的,還是自己動手,沒想好。

最後好像,沒遇到過需要復雜的數據操作的情況,對算法需求不是很大。也許是因為面向對象,我可以直接引用別人的緣故吧。

小總結