根据个人的经历谈谈个人感想
坚守“ 做人真诚 · 做事靠谱 · 口碑至上 · 高效敬业 ”的价值观,专业网站建设服务10余年为成都房屋鉴定小微创业公司专业提供成都企业网站定制营销网站建设商城网站建设手机网站建设小程序网站建设网站改版,从内容策划、视觉设计、底层架构、网页布局、功能开发迭代于一体的高端网站建设服务。
我一开始学的是VB,但学会后,也就是楼主你的样子,后来学C,觉得C太垃圾了,这可能和VB的简单形成对比,C语言学会后就再也没用,后来直接由VB升级到VB.NET,的确,如同楼主所说,.NET是比较简单,但是有个后遗症,是现在我都烦的,就是编译的软件必须要在有.NET的电脑上运行,XP是不带.NET的,而且,版本还的相对,如果用.NET4.0编的,在4.0以下版本电脑上运行很可能就出错,并且,如果你要打包的话也可以,就是把软件打包成安装包,然后附带.NET环境,但缺点就出来了,.NET3.5完整安装包235M,因为它包括了以下所有版本,还好.NET4.0只有50M左右,因为它不包括以下版本,但总之,.NET就是简单了编程,但复杂了使用,软件得打包,不像VB,编好后直接打开EXE就可以了。所以就麻烦了,举些例子,以前用VBA编OFFICE的宏,打开OFFICE就可以编,编好后就存为XLSM就可以了,现在用.NET就成了VSTO了,编好后,不和文档在一起,是分开的DLL,如果要运行,条件为,1,.NET环境,2,OFFICE,3,VSTO相比以前只需要OFFICE复杂了N倍,而且编辑时也需要VS(动不动就几G)才行,相比以前只要有OFFICE就可以区别也很大,同样,CAD的嵌入开发也是一样的。
所以总体来说,越底层的语言越底层的API越好用,越通用,越高级的越不通用,所以现在我开发软件我都烦了,要是一个小软件几百K~M,再附带个.NET就好几百兆,用的时候还得安装才能用,又不是什么大软件有必要这么做么,还有.NET不是万能的,有些地方也得用API,而且.NET其实也挺复杂,难的地方不比API简单,其实就感觉是封装好了的API而已。
至于数据库,的确.NET连接比较简单
至于学C?那就不用了,因为.NET的支持 C#,C++,VB,J#,只要会其中一种就可以了(而且你只要会其中一门,是能看懂另一门的,比如我虽然编辑C#可能要出错,但C#代码我是几乎全部能看懂的,网上查资料也能看懂其他语言的),大部分是学C的升级用C#.NET,VB的升级成VB.NET,你没必要把它当成另一中语言来学,语法是基本一样的。只是从一开是学C的比较多,就成了C#的比较多而已了,至于语言,我不想做语言攻击,其实都是有用的,就是看自己习惯不,比如我就不习惯C。
我也不想说VB好还是VB.NET好,其实是看你用途,我只是至今没发现什么网上的软件是.NET编辑的,一些软件比如CAD,OFFICE安装时安装了.NET,其实都不是它们是基于.NET编辑的,而是为了支持.NET的嵌入式开发,你所看到的软件,比如QQ,迅雷,你看他们带.NET了吗?要是.NET好,他们干嘛不用,答案是因为不方便,因为XP系统一般是没有.NET的,连WIN7内嵌的.NET都不支持最新的.NET,也就是你用什么版本编的就得安装相应版本,那也要求对方电脑也得跟着升级,而API是不用升级着走的~
所以,你要编的软件在其他电脑上用,VB+API吧,如果你要个人电脑上用,VB.NET吧,如果你编小软件vb+api吧,如果你要大型软件就VB.NET吧,所以,你自己选吧。
希望给你的意见能对你有好处,现在深夜11点了,我也改睡了,拜拜!~
祝你学习愉快!
对了,还有点,比如CAD2007不支持.NET3.5以上的编程,而且.NET编好的EXE或者DLL是可以用专门的软件打开看你源代码的,也就是反编译,这对于加密(可以看你的加密方法)就很麻烦了(据说采用什么办法可以解决)。
关于用户控件的使用,.net与v6环境下是有那么小小的区别。v6环境下的用户控件编写后可以直接使用,而在.net环境下,则需要先生成控件库(dll,应用程序扩展格式),然后再将这个控件库导入到.net编程环境的工具箱上方可使用。其具体方法如下(以VS 2010,Visual Basic.net 为例):1、新建项目-Visual Basic-Windows-Windows 窗体控件库-键入控件库名称(默认为Usercontrol1)确定;2、设计你的用户控件,完成后按“F7”进行编译;3、在该解决方案目录下找到控件库扩展(默认为UserControl1.dll),确认项目已经生成。在上三项为控件库DLL的生成方式,下面是调用方式:4、新建项目-Visual Basic-Windows-Windows 窗体应用程序-确定;5、打开工具箱,以任意一个控件上点击右键-选择项-.net framework组件-浏览-定位到生成的控件库扩展-确定;6、在工具箱中找到新添加的用户控件,将其拖至窗体中进行设计。经测,在.net环境下编译的用户控件是通用的。也就是说使用Visual Basic.net编写的用户控件,也可以在C#工程里使用,反之亦然。这充分体现了.net语言的交互性,在我看来,.net下各种语言能力相当,它们都是作为一种中间语言,编译出中间代码。所以,在.net环境下,采用混合编程也未尝不是一样提高效率的一种可选的方式。
第一,VB什么时候都不是世界上使用人数最多的语言。其次,我真的不知道VB这东西有什么好的,如果说VB给当初困扰中的windows程序员们提供了一个所见即所得的UI开发环境,那么其实他们真的应该多关注Delphi、C++
Builder。第三,.NET跟微软的web
service也没有一毛钱的关系,微软第一个web
service的标准是SOAP,2000年左右出的。VB.NET与其说是VB,不如说是微软为了挽留VB程序员做的努力。拿VB去比C++更是令人发指。第四,.NET并非一个编程语言,C#、VB.NET、托管VC、Delphi
.NET都是.NET家族的。
代码看上去是没错的,你要不重新引用一下excel的,或重新安装一下office版本,现在有些系统是直接用ghost恢复的,所以excel也可能是简单的版本,或2003版本的安装了2007的升级包
在VB.Net当中,事件的"关联"是需要明显标志的,不像vb6当中,声明一个过程就是事件执行过程了
Handles用来静态"关联"一个或多个事件到一个过程
"关联"时,过程的签名必须与事件的签名相同(签名的意义请查看相关文档)
在VB.Net当中,事件也是一个对象(VB.Net当中一切皆为对象)
使用Handles时实际就相当于创建了一个对委托的实现(委托的意义请查看相关文档)
可以简单的认为,当事件被触发时,被Handles"关联"了的那些过程代码将被执行
而且,被"关联"的过程可以任意起名,不需要与事件和对象的名称相对应
上述代码如果去掉Handles 及其后面的内容,它将是一个最普通不过的过程,与其它过程没有两样,也不会有任何事件被触发时去执行这段代码,正因为加入了Handles 及其后面的一堆事件,它才会因事件被触发而被执行
说得再简单一点: 当PictureBox1.DoubleClick, PictureBox4.DoubleClick, PictureBox3.DoubleClick,PictureBox2.DoubleClick当中的任何一个事件被触发时,上述这个过程的代码都将被执行
再说说参数: sender表示触发了此事件的对象,在这里就是PictureBox1/PictureBox2/PictureBox3/PictureBox4当中的某一个,利用它能知道到底是哪个对象触发了此事件,e在这里没有用处,利用不到什么,之所以有它,是因为Object/EventArgs是.Net事件的基本签名方式,它的好处在你以后对.Net深入之后能体会到.
这些参数的值都是通过被触发的事件传递过来的,可以简单的认为[事件调用了此过程并为参数赋了值]
可以将文件等分成两部分,分别用两个private读取就是2线程。
内存解决方案:不要等程序自动GC,自己手动释放不需要内存。
缺陷:可能会浪费时间。