.net发展的比较晚,所以.net程序员的来源比较杂,什么样的人都有:
纯.net程序员:
一开始就用.net的,或者以前有用其他语言,但没有受其影响的,规规矩矩,紧跟ms的指导方向.这里的人大多数是这类吧,包括我
把.net当java用的:
算正常. 本来就很相似的东西,思维活跃
把.net当Delphi用的:
对控件很感兴趣, 滥用继承, 有些做asp.net的可能还不是很了解HTML和Script
把.net当VB用的:
喜欢用VB.net, 不懂OO, 对控件感兴趣, 经常犯使用了未初始化的对象的错误, 也有可能不太懂HTML和Script
把.net当asp用的:
和用VB的类似. 但对HTML和Script比较熟悉, aspx里有很多<%%>标记
以上是我在论坛, QQ群里观察人们的讨论及代码片断后总结所得
.net的易用性和所谓跨语言的特性和使大量的程序员轻松的使用上.net, 但是他们很多都摆脱不了以前的习惯, 写出来的程序让人明显感觉到他以前是干什么的. 这导致了.net社区的文化比较混乱,程序员的总体素质偏低.这到底是好事还是坏事?
最近学NHibernate,集合的几种类型搞得我头晕.我问了几个搞java的同学,都说集合一般用set,但是NHibernate里set得声明成IDictionary,我就搞不懂,干嘛要用个键/值对去存放集合呢?后来跟同学讨论了好久,才搞清楚真相:
Set在java里头是列表而不是字典,他和List不同的地方是不能有重复的值.问题就在.net本身没有类似set的东西,于是NHibernate里头自己做了几个set类型,他却是实现IDictionary的,可能是利用一个内部的HashTable来阻止插入重复的值.然后往集合插入实体的时候,就把实体当作键,然后随便new一个object作为值...很别扭啊

是作者在偷懒,还是另有原因?