我学习C#的经历也是在学习Java后的基础上开始的,那时我接手了一个“火灾报警信息远程监控”的项目。项目的具体内容在此就不详述了,当时,我刚刚参与完成了实验室的一个基于PetStore的JSP1.0网站开发(使用JBuilder9)。由于该项目主要是对串口进行操作,而且需要较友好的用户界面,使用Java开发当然是不合适的。由于我有在C++ Builder6.0下使用TMS Async32 (是一个包括提供访问Windows下串行端口组件的通信包。事件驱动架构提供最高的性能并允许所有的工具在后台运行)控件的经验,因此,第一版的程序使用了C++ Builder6.0完成。项目提交后,为了改进系统性能,包括将监控做成系统服务等内容,再加上,当时被C#与VS.NET的一些优良的特性深深吸引,在当时没有SerialPort控件的条件下,搜到了一个破解版的串口控件(具体是哪一个,叫什么名字还真给忘记了,不过,对现在而言,用处不大,因为自.net framework2.0后,.net SDK中带了一个很好用的SerialPort控件),短短两天的时间,就用C#完成了该小程序。那时,两本书帮助我快速入门,一本是《.NET大局观》,一本是《C# Primer》中文版,虽然,在这两本书中,未见到很具体的高级的WinForm编程实例,但却让我在短短的时间之内,由一位Java程序员转变也C#程序员。最近出了本评价较高的书,名为《C#和.NET2.0实战——平台、语言与框架》,感觉该书在对一些内幕的剖析上讲的不错,很受用。
如果没有面向的对象的基础,学习C#的高级内容还是有点难的,个人认为Java在面向对象上一直保持着其简单性,因此,面向对象的入门,可先学习Java。再者,Java在当前的语言排名上,也名列榜首。而且,个人认为Java与.NET之争还会保持很长一段时间。作为一名程序员,这两门语言是不得不去掌握的。我觉得学习Java比较好的教材当属《Java In a Nutsheel》(Java技术手册),开发工具目前来看,NetBean比Eclipse更有优势,使用起来,方便、省心,还有许多类似于VS.NET的功能。
许多C#的电子书没有中文版,有的也是扫描版的,文件动辄就是50M以上,现将一本还算说得过去的C#电子书发到CSDN上,以便不想去买C#参考书的朋友们参考。