十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
第一,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家族的。
1、从OOP概念上讲,VB不是一个真正的面对对象的语言,他不支持继承等一些面对对象的特性,而VB.net是一个面对对象的语言,支持这些特性
2、VB和VB.net都可以用来网络编程的,这点可以肯定,两者都有这个功能
VB是通过控件进行网络编程,而VB.net可以通过VB的控件,也可以是用.net框架提供的system.net命名空间下的所有的类
3、正确理解VB.net中的.net,.NET 是微软推出的一种新的编程思想和模式,对于网络提出了一个新的概念(当然功能有了很大的革新),微软在.net 框架中规定了通用语言规范,只要符合这个规范,都可以利用.net强大的功能来完成任务,比如delphi.net ,他是.net和通用语言规范结合的产物,.net 框架提供了好多功能,简单列出一些命名空间
System 包含所有的数据类型和...
System.IO包含Windows文件,数据流的访问操作和...
System.Net包含网络有关的各种协议TCP,UDP等等和...
System.Text包含字有关的,比如经典正则表达式
System.Data包含访问数据的所有的类
System.Web包含Web有关的,比如Web Services的新概念
System.Drawing包含GDI+的所有功能,可以绘制图形
System......等等
当然还包括Microsoft.VisualBasic等微软产品的系列的命名空间
这些命名空间可以用于所有.net的应用程序,比如可以用System.Drawing包含GDI+的所有功能来Web上动态的设计图表
而实现它就可以用VB.net的语言
4、可以宽泛的来解释就是:VB.net=VB(OOP)+.net
5、VB.net的运行方式和VB不同,比如VB就是通过一个DLL动态链接库文件来编译的,而VB.net是先生称MSIL(微软中间语言)代码,然后通过通用语言运行时,将MSIL继续编译生成更好更高效的代码。这位朋友可以试着用一下.net下的vbc.exe编译工具,写个小程序编译下试试
6、两者语法相同,但有少许差异,VB.net的运算符和一些错误处理机制多了一些
7、VB和VB.net最擅长用于快速开发,不需要太过于考虑性能的快速开发,但是VB.net和其他语言的功能天生是相等的,现在的VB.net用于Web应用程序,WinForm应用程序开发的情况就比较多,而其他应用我不是很了解或一时想不出来,我有个朋友就是用.net做嵌入式开发的,但他们公司也用.net 做3G开发
8、狗屁六级的vrhero,“VB.NET也是VB”还在这儿放这么多废屁,这样的人就是没事找抽型 把你的6个问题也给解释一下,1、smalltalk是纯粹的OOP语言,Java %90的OOP,VB不支持OOP的特性,所以不完全是,够明白了吧2、完全不知所云---我写的这些不是拷过来的,不能说我不知所云3、我只是把我经常用到的命名空间告诉这位朋友不为过4、误人子弟,屁话5、屁话6、笔误,是我的错7、你用VC++开发web给我看看,相比VB.net和C#看看那个快,各种语言都各有所长,不是我说的,微软.net系列清华出版的这么多书,那本不都有说明吗?你补充的那几句,学过.net的人都知道,没有实用价值。
“除了语法和使用习惯的继承,VB 6.0之前的版本和VB 7.0之后的版本完全没有联系,几乎没有相同之处,两种不同体系的语言”和“VB.NET也是VB ”这种自相矛盾的话,就认为这位高级经理是大脑发热,笔误吧!
都说在.NET里,.NET framework和CLR是应用运行的基础。那么VB.NET和C#是不是就完全一样,只是语法不同吗?
一、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)
后台编译
C#与VB.net间移植的技巧
按理说,这两种语言没有什么移植的必要,因为他们生成的代码可以完全通用。但是如果一个工程基本上是VB写成的,却需要少许已经存在的C#过程,用组件并不是一种效率很高的办法。就算是学习C#或VB,学会他们之间的移植可以双倍的利用已经存在的代码(如好玩的Donkey.net就只有VB版)。
有人比较过这两种语言,得出的结论是他们很相似。但即便是这样,VB初学者看到诸如((Button)sender).Text=“启动”;之类的语法不知道如何移植到VB,而C#初学者看到Handles Button1.Click等语法也会为移植而感到头痛。下面就看看他们最难移植的部分:
1、Option语句。VB的Option语句可以打开或关闭变量声明检查和类型转换检查。尤其是Option Strict被关闭后,VB变成弱类型语言,很多类型转换都是自动的,移植到C#中会产生无数错误。因此,如果要将带有Option Strict Off语句的VB程序移植到C#,最好先在VB中将Option Strict打开,然后把所有类型转换出错的地方变成强类型转换,然后再进行移植。
2、类型转换。VB提供了很多类型转换函数型运算符,如CInt(),CSng(),CStr()等,在C#中只要用(int),(float),(String)即可。然而如果不是标准类型,如下面的C#语句:
((System.Button)sender).Text=“启动”;
就要使用VB的函数型运算符CType来实现。上面的代码正确的移植方法是:
CType(sender,System.Button).Text=“启动”
千万不要使用某些人推荐的,将Option Strict关闭,然后用后期绑定调用sender对象的方法,这根本不符合程序移植不能改变本质的要求。
3、修饰符和属性标签。VB和C#的修饰符是完全对等存在的,但是拼写往往不同,给移植带来了很多麻烦,尤其是表示相同意思的关键字从字面理解完全不同的时候。下面就给出了VB和C#对应的关键字:
VB
C#
VB
C#
Inherits
:
Implements
:
MustInherit
abstract
NotInheritable
sealed
Overridable
virtual
NotOverridable
sealed
MustOverride
abstract
Overrides
override
[Overloads]
无
Shadows
new
Shared
static
Public
public
Protected
protected
Friend
internal
Protected Friend
protected internal
Private
private
Static
用别的方法实现
ByVal
无
ByRef
ref
Optional
无
ParamArray
params
无法实现
unsafe
无法实现
fixed
可以看出,VB的关键字比较长,而且使用上也比C#更加严格。从C#向VB移植的时候,要分外注意哪些VB有而C#没有的关键字以及在C#拼写相同,在VB中拼写不同的关键字(如MustOverride和MustInherit)。有些关键字如unsafe,如果C#使用了他们,将无法移植到VB中。好在这些关键字在商业应用中并不常用。
属性标签在这两种语言中非常的相似,移植上应该没有任何难度,只要知道在C#中用方括号[]表示属性标签,而在VB中用的是尖括号。另外,如果要用名称结合传递参数,C#直接使用=号,而VB使用:=(冒号和等号)。
4、委派类型。委派类型就是安全的函数指针类型。在C#中,难以分辨是函数指针在工作还是函数本身在工作,因为他们的语法相同。当要为一个委派类型的变量复制的时候,直接等于一个函数即可,如:
public delegate void FuncType(Object e)
...
FuncType func;
func=new FuncType(this.SampleFunction1);
//调用
func(something);
//换指向另外一个函数
func=this.SampleFunction2
然而VB中,委派类型就像是一般的对象,有它的方法,与函数本身明显不同。你不能将过程的名字直接赋给一个委派类型的对象,而必须使用AddressOf运算符,下面的例子就是上文C#程序的VB版,注意那些实现不同的地方:
Public Delegate Sub FuncType(ByVal eAs Object)
...
Dim func As FuncType
func=New FuncType(AddressOf Me.SampleFunc1)
‘调用
func.Invoke(something)
‘换指向另外一个函数
func=AddressOf Me.SampleFunction2
5、事件处理。这是两种语言最大的差别之一,VB传承以前版本强大的事件处理机制,许多语法都比C#更加灵活。好在无论什么情况,他们之间都是可以互相移植的。
对于事件定义,两种语言都是一个委派类型加一个事件属性,如:
[C#]
public delegate void MyEventHandler(Object sender,EventArgs e);
public event MyEventHandler MyEvent;
[Visual Basic]
Public Delegate Sub MyEventHandler(ByVal sender As Object,ByVal eAs EventArgs)
Public Event MyEvent As MyEventHandler
VB还支持另外一种更加紧凑的定义方法,只有一条语句:
Public Event MyEvent(ByVal sender As Object,ByVal eAs EventArgs)
移植的时候,要把参数部分分离出来,成为一个委派类型,再按照普通方法定义事件即可。
关于事件响应,C#与Delphi等语言一样,是动态绑定事件过程的,其语法类似于下:
internal MyClass myobj;
...
myobj=new MyClass();
...
myobj.MyEvent+=this.myobj_MyEvent;
...
protected void myobj_MyEvent(Object sender,EventArgs e)
{
//语句
}
可以看到,C#是利用运算符连接事件过程和事件属性的。之后,还可以用-=运算符解除事件过程与事件属性的绑定。VB不支持运算符重载,但仍然支持这种动态绑定的事件过程,方法是使用AddHandler和RemoveHandler关键字。如上面黑体部分可以移植为:
AddHandler myobj.MyEvent,AddressOf Me.myobj_MyEvent
解除绑定的语法与此类似,只是关键字为RemoveHandler而已。一定不要忘记过程前面还有一个AddressOf关键字!
动态绑定的事件过程工作起来比较慢,VB支持一种更快的静态绑定事件过程。一旦为对象设置了静态的事件过程,就不能解除绑定,一般大多数情况都是如此。语法如下:
‘定义变量时使用WithEvents关键字
Friend WithEvents myobj As MyClass
‘直接书写事件过程,注意Handles的语法:
Protected Sub myobj_MyEvent(ByVal sender As Object,ByVal eAs EventArgs)_
Handles myobj.MyEvent
‘语句
End Sub
它表示myobj_MyEvent这个过程仅仅响应myobj.MyEvent这个过程。如果一个过程要响应很多个事件,把他们列在Handles后面,用逗号隔开,如Handles Event1,Event2,...
遇到这种情况,要看清Handles后面的所有对象和事件,将它们一一改写成动态绑定的语句:
Protected Sub XXX(...)Handles myobj1.MyEvent,myobj2.MyEvent
==
myobj1.MyEvent+=this.XXX;
myobj2.MyEvent+=this.XXX;
...
protected void XXX(...){}
当事件比较多时,C#显著变得比较麻烦,幸好一个过程响应一大堆事件的情况也不太多(不过我就编写过一个过程相应8个事件,移植起来好麻烦!)。原则上说,将静态事件过程移植为动态事件过程并没有完全遵守移植的规定,但我估计他们实现的原理不会相差太多,所以也不用担心。
6、异常处理。VB支持两种形式的异常,即.net框架的异常和VB自己的错误号码。而C#只支持第一种。用到VB自己的错误号码的程序几乎无法移植到C#中,所以应该尽量使用.net框架的异常,如下面VB语句:
Try
‘发生错误的代码
Catch When Err.Number=52
‘解决错误的代码
End Try
这段代码无法直接移植到C#中,只有用Exception对象取代Err对象获得异常信息,才能顺利移植。另外VB的When语句带给Try语句十分灵活的用法,必须用很高的技巧才能在C#中实现,这就需要具体问题具体分析了。
VB支持Exit Try语句,可以直接从Try块或Catch块跳转到Finally块。C#没有提供类似的语法,可以用以下技巧:
[Visual Basic]
Try
‘一些语句
Exit Try
Finally
‘一些语句
End Try
[C#]
try
{
//一些语句
goto__leave;
}
finally
{
//一些语句
}
__leave://别忘了这里还有哦!
总之是利用了finally块无法跳过的特征,用goto语句模拟了Exit Try语句。
如果VB程序用的是VB特有的On Error GoTo语句实现的错误处理,问题就麻烦了。代码可能在过程中上下跳跃,无法预料语句的执行方式。这种代码理解起来就头痛,更不要说移植了。总体来说,把所有语句统统转移到try块中,然后用catch一一处理错误。遇到要返回(Resume语句)的时候,只好Copy代码了。反正不是一件容易的事情,慢慢改就是了。
7、模块。VB支持模块,C#不支持。但也没有关系,只要在C#中制造一个abstract类,共享所有成员,就和模块一样了。当然不能像VB一样直接访问模块中的成员,需要用到“类名.成员名”的用法。
8、接口。C#在接口方面也没有VB强大(怎么这么重要的功能也不做得好一点?),VB采用Implements语句结合接口的成员和类的实现成员,而C#是用名称结合。因此VB就可以随便修改实现成员的访问级别和名称,而C#就不能改名称。将C#移植为VB时,最好利用VB.net编辑器直接实现接口,比较简单。把VB移植为C#时,就必须把改过的名字都改回来,遇到名字冲突就更讨厌了(这时候我几乎不想再移植为C#了)。给一个例子:
[Visual Basic]
Public Class Class1:Implements IMyInterface
Public Sub DoSth()Implements IMyInterface.Method1
End Sub
End Class
[C#]
public class Class1:IMyInterface
{
public void Method1()
{
}
}
9、运算符重载。这会遇到VB头痛了,既然VB不支持运算符重载,那么就必须用子程序和函数来模拟运算符。比如建立Plus和Minus方法模拟+和-的运算。当然还是有很多情况(比如遇上了explicit和implicit语句)就真的没有办法了,只好不移植了。运算符重载是一个很不错的功能,它能使很多操作简单地完成,如果VB支持它,就真的是完美语言了。
1、vb.net 完全符合面向对象的编程语言抽象、封装、继承的四大特性,而vb不支持继承。
2、错误处理不同。
vb中只是On Error.....goto和On Errer Resume Next ,这些错误称为非结构化异常处理。而在vb.net中采用的结构化异常处理机制,try...catch....finally控制。
3、两者产生的窗体不同。
vb.net 允许创建不同类型的应用程序,例如,创建ASP.NET和ASP.NET Web 服务应用程序,还允许创建控制台应用程序和作为桌面服务运行的应用程序。但是vb 只能创建Windows窗体。
4、数据库访问的差别。
vb6.0是通过ADO(Active X Data Objext)来实现对数据库访问。而vb.net 是通过ADO.NET来访问数据库。
扩展资料
Visual Basic(简称VB)是Microsoft公司开发的一种通用的基于对象的程序设计语言,为结构化的、模块化的、面向对象的、包含协助开发环境的事件驱动为机制的可视化程序设计语言。是一种可用于微软自家产品开发的语言。
“Visual” 指的是开发图形用户界面 (GUI) 的方法——不需编写大量代码去描述界面元素的外观和位置,而只要把预先建立的对象add到屏幕上的一点即可。
“Basic”指的是 BASIC (Beginners All-Purpose Symbolic Instruction Code) 语言,是一种在计算技术发展历史上应用得最为广泛的语言。
Visual Basic源自于BASIC编程语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建Active X控件,用于高效生成类型安全和面向对象的应用程序 。
参考资料:百度百科-Visual Basic
C#.net优点:
运算符重载。不安全代码(指针和固定内存区)、 无符号整数、移位运算。
VB的优点:
即时编译、静态事件绑定、条件异常捕获、COM兼容类、宽松的类型检查和变量声明、Visual Basic Runtime库、可选参数、带参数属性、模块等语言特征、动态数组。
通过VB.NET开发好的程序绝对没有问题(包括Direct X游戏开发)。虽然VB.NET的资料少,但是只要C#支持的VB.NET都支持(大体上这样,因为都要经过MSIL中间环节。除了指针之类的VB.NET不支持C#支持,但是没有多大实际用处)。
vb.net的资料以英文资料居多(只有英文资料才有看头,中国的没有什么好资料),得看看英文水平过不过关。还有VB.NET的ide也比C#的IDE好得多,代码看得也舒服。(C#的大括号{}太烦人)。
至于VB6对C的帮助,只是理解上会容易一些,其它用处不大。有VB6的基础学VBNET会方便一些,但是并不是会VB6就会VB.NET,它们差别也不小。
扩展资料:
NET、C#和ASP.NET之间的区别 :
1、NET是一个平台,一个抽象的平台的概念。
NET 平台其本身实现的方式其实还是库,抽象层面上来看是一个平台。
基本可以理解的NET核心就是NETFramwork。
NETFramework包括两个关键组成元素:
a. CommonLanguageRuntime,公共语言运行时(CLR0)-提供内在管理,代码安全性检测等功能。
b. NETFrameworkClassLibrary,.NET 框架类库(FLC)-提供大量应用类库,提高开发效率。
学习NET Framework 是所有.NET开发人员都必须的,否则开发NET程序永远都是停留在‘外功’的招式,NETramework 是NET开发高手的‘内功’修行之一。
2、C#是一个程序设计语言,仅仅是一个语言。
程序设计语言仅仅是为了方便开发人员和计算机沟通的工具,虽然 C#语法相对 C 和 C+要多一些,但是相对来看 C#语法都比较固定,这样使用起来却都很容易。我认可一位朋友说的,C#的语法更严谨!
这里回过来看看NET和C#的关系,不得不提的是NET程序的执行过程。
C#符合NETCLR 中的公共语言运行规范。CLS:commonlanguagespecification,当然所有的NET Language 都是符合这个规范的例如:VB.NET、XAML 和 C++/CL等等。
C#需要符合NETCLS,是因为NETCLR和JAVA虚拟机类似,有一个中间语言共机器来执行。所有不同语言的.NET代码在执行前会被编译成同样的中间语言(MSIL),所以所有NET 支持语言都必须符合符合CLS 规范。
P.S:如果做.NET3.0XAML开发的朋友,可以尝试下ildasm.exe看看XAML的应用程序,会发现原来 XAML其实很简单。
3、ASP.NET是一个网站开发的技术,仅仅是.NET框架中的一个应用模型。
用微软公司ASP.NET快速入门中的一句话来解释,ASP.NET是用于生成基于Web的应用程序的内容丰富的编程框架。
ASP.net 和C#的区别:
编写asp.net通常包括两部分的代码:网页层和后台处理层,网页就是用标记语言来写的,而网页对应的后台处理程序则需要.net语言来完成,目前主要是采用c#和vb.net。
可以说整个的asp.net网站通过c#或者vb.net来实现。而c#则是ms .netframework的主要语言,可以用在网站,桌面应用等方面。可以算是一种比较流行的编程语言。
' 关于VB.net { Visual Basic.NET是基于微软.NET Framework之上的面向对象的中间解释性语言,可以看作是Visual Basic在.Net Framework平台上的升级版本,增强了对面向对象的支持。但由于改动太大,导致VB.net对VB的向后兼容性不好,在业界引起不小的争议。 } ' VB.net与VB6.0的主要区别 { VB.Net需要在.Net Framework平台上才能执行,因此,大多的VB.Net程序员使用Visual Studio.Net作为IDE(integrated development environment-集成性的开发环境)开发.net应用程序。 VB6生成的应用程序不需要.Net Framework框架的支持。 因此,使用VB.net开发的应用程序只能在装有.Net Framework框架的系统中运行。 } ' VB.net与VB6.0的编程思想 { 网上流传的VB与VB.net差别被过分夸大。其实VB.net改善的只是完整的面向对象思想,90%语法与VB6.0保持一致。 抽象、封装、多态、继承是面向对象语言的四个基本属性。VB6.0不支持继承,而VB.NET则不然。所以,和C++一样,VB.NET也是完全面向对象的编程语言。 } ' VB.net与VB6.0的应用前景(个人观点 By 刺猬) ( 介于现在应用最为广泛WindowsXP操作系统没有预装.net framework的原因,许多VB程序员采用VB6.0开发应用程序;但现在不一样了,在未来,WindowsXP系统必将面临淘汰。继Vista以后,系统都预装了.net framework框架,由此看来,微软正在极力推崇使用.net技术。或许,.net应用程序的开发在未来会有很大的发展前景。 }
求采纳