小总结
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小总结相关的知识,希望对你有一定的参考价值。
之前定小目标时是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#强类型,很烦恼,可能多用,多熟悉就好了吧。每种类的方法,不熟悉的话,感觉跟方言似的,实在不懂,还是说我英语太弱了,不会猜呢?
还有感觉有些控件好难用,是深入学习怎么用,还是从网上找个好用的,还是自己动手,没想好。
最后好像,没遇到过需要复杂的数据操作的情况,对算法需求不是很大。也许是因为面向对象,我可以直接引用别人的缘故吧。
以上是关于小总结的主要内容,如果未能解决你的问题,请参考以下文章