十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
.NET是平台,vb.net,c#.net就是.net平台下的两种编程语言,如果你对vb比较熟悉,可以去学习vb.net,其实就相当于vb在.net下的升级版,但向后兼容性不是很好。
创新互联建站-专业网站定制、快速模板网站建设、高性价比路桥网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式路桥网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖路桥地区。费用合理售后完善,十余年实体公司更值得信赖。
.Net平台引入了很多先进的技术,导致了VB6和VB.Net之间产生了一个巨大的鸿沟
就语言功能上来讲,VB.net完全是为了.Net技术而生,具有更好的运行效率和更加强大的功能(某些方面甚至超过了C#)
从语法角度上来讲,VB.net成为了真正的OOP(面向对象语言),不但支持类的继承、派生,还支持委托、泛型等等更加高级的编程技术
如果你是从VB6升级到.net的话,建议要将VB.net当作一门新的语言来学。以VB6的经验来应用到VB.net上是会犯很多错误的
关于从VB6升级到VB.net的代码变换问题,注意以下几个重要的要点即可:
1.不再支持Load、Shell、.LoadPicture等语句
请用相关的.net语句替换
2.String类为引用类,也就是说
Dim s1,s2 as String
s1="FFFFFFF"
s2=s1
此时修改s2的值s1也会跟着相应变化
3.不再支持Variant型和Currency型变量
分别用Object和Demical类型代替
4.变量长度的变化:
VB6的byte、Integer、long型分别被vb.net的byte、short、integer代替,而long型则成为64位大小的整数。新增了UInteger、ULong、SByte等无符号整数类型
一、C#
--- 像VB一样简单,像C++一样强大的新语
C#是第一流的面向组件的语言
由 Turbo Pascal, Delphi, and Visual J++的首席设计师Anders Hejlsberg 倾心3年设计
所有的语言元素都是真正的对象
开发强壮和可重用的软件
所有的.NET Framework中的基类库(Base Class Library)都由C# 编写
二、VB.NET
--- 完全面向对象的BASIC语言
1.新语言特性
完全面向对象– 继承(Inheritance), 重载(overloading), 共享的成员, 结构化异常处理
强壮的语言 – 严格的类型检查, 变量声明时初始化,支持垃圾收集(Garbage collection)
强大 – 支持委托(Delegates), free threading,Variant 数据类型被 Object 代替
2.与VB6一致的语法
三、2者的区别?
1.语法上的差异
例如循环的写法
VB.NET
For I = 1 To 10
‘ for loop
Next I
C#
For (i=1;i11;i++) {
// for loop
}
另外Visual Basic 对大小写不敏感,而C#是大小写敏感的。
2.C# 具有但 Visual Basic 不具有的特性
指针, 移位操作符, 内嵌的文档(XML)
重载操作符
3.Visual Basic具有但 C# 不具有的特性
更丰富的语法: Events, Try…Catch, Select…Case, 实现 Interface
后期绑定(Late binding), 动态数组, 模块(modules), 可选参数, 参数属性(parameterized properties)
后台编译
vb.net是完全面向对象的语言,支持面向对象的四个基本属性:抽象,继承,多态,封装,但vb是面向过程的语言,它只支持部分面向对象的内容像多态,接口等。从 VB 7.0 之后的版本俗称 VB.NET,来源于微软的.NET战略,到现在为止有三个版本
VB 7.0 即VB 2002,对应.NET Framework 1.0的版本
VB 7.1 即VB 2003,对应.NET Framework 1.1的版本
VB 8.0 即VB 2005,对应.NET Framework 2.0的版本
除了语法和使用习惯的继承,VB 6.0之前的版本和VB 7.0之后的版本完全没有联系,几乎没有相同之处,两种不同体系的语言
没有差异, 它们分别由C#编译器和VB编译器将你写好的代码编译成IL代码, 再由IL编译器解释成机器可以直接执行的机器代码. 我们的应用程序实际上执行的都是封装在dll里面的IL代码, 所以从这个角度来说, 它们直接是没有性能差异的.
可能存在的差异仅仅可能在C#编译器和VB编译器将手写代码编译成IL代码这个过程中产生, 不过肯定差异不大.
请采纳, 谢谢.