vbnet和c,vbnet和aspnet

VB.NET和C语言,C++,JAVA之间有什么区别(具体点)?)

总得来说,语言可以分为两种,一种是面向对象,一种是面向过程.(想要学,就去买本书回来慢慢看.)

创新互联建站专业为企业提供永靖网站建设、永靖做网站、永靖网站设计、永靖网站制作等企业网站建设、网页设计与制作、永靖企业网站模板建站服务,十载永靖做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

我学了一年多的编程了,总学过C语言,VB.NET,C++.

其中,觉得,C++要学好,需要下太大的资本了.也要有一些条件!

不过,C++和java有一个大的区别,就是C+无论做一个项目,需要创建许多的类.而java本身就已经具有那些类了,只要你调用下就ok.不过,C+那样用户创的类,实用,灵活方面,就比较实在!不过,说白了点,就是麻烦..你看着自己的意愿发展吧!不能全学语言,要专攻一门.

VB.net 和C#.net 各有什么优缺点

VB.net完全是为了让VB程序可以再.Net平台上运行而存在的,其本身就是一堆缺点,运行效率上没有VB高,对象取得也没有VB方便,语法和VB基本一样,所以编写起来也麻烦,虽然是.Net框架下的语言,但对.Net的支持又不是很好,却又因为.Net拖慢了VB自傲的高速。

C#就完全不同了,他就是给.Net写的,肯定是对.Net支持最好的语言了,而且语法也比较简单,和C、C++、Java的语法是一样的,只是.Net的类库和这三种语言不同,所以实际写代码时,比VB、VB.net、C、C++、Java都要简单

vb.net和c语言哪个更好,更普遍

c吧,初学上手比较难,但还在用,其他语言好多讲效率的基础库底层都是c写的。

另外好多语言都是c语言体系的,基本都差不多什么if,else,switch啥的。

vb相对简单,但不算很大众。c#,java这种比较主流上手也快,但也是c体系的。看你要干嘛了

vb.net和c语言哪个好

语言没有好坏之分,只有对某个问题的处理擅不擅长,具体还得看你自己的需求。

VB.NET确实还行,C语言大家都知道效率比较高,应用也更广泛些,还是推荐你学C语言,学好C语言之后再学C#比VB.NET稍微好学些,都是.NET

.NET语言的选择,C#,VB.Net哪个更有前途?

Visual Basic.net还是C#

——如何选择.net语言

在.net中,如何选择VB或C#?这似乎已经争论了很久。很多人盲目选择,也产生了许多流言和错误。本文将从以下方面指导你选择正确的开发语言。

功能上的考虑

许多人认为C#的功能比VB.net强大,或者C#更加适合.net等。其实这不是一两句话能比较清楚的。C#的确有VB无法完成的功能,但VB也有C#无法完成的功能。总的来说,对于.net开发,VB和C#没有任何差别,都100%兼容于CLS。下面列出的是他们语言功能上的不同,这些仅仅是语言实现上的问题,不会影响到生成的代码。打*号的内容与CLS不兼容。

C#有而VB没有的功能:

1、 运算符重载。*

2、 不安全代码(指针和固定内存区)。*

3、 无符号整数。*

4、 移位运算。

VB有而C#没有的功能

1、 即时编译。

2、 静态事件绑定。

3、 条件异常捕获。

4、 COM兼容类。*

5、 宽松的类型检查和变量声明。

6、 Visual Basic Runtime库。

7、 可选参数、带参数属性、模块等语言特征。*

8、 动态数组。*

可见,实际上功能更强大的是VB而不是C#。不过它们不一样的地方多半是无关紧要的特征。总体上来说,不应从功能上选择VB或者C#,因为他们没有什么具体的差别。

性能上的考虑

性能是程序员最关心的问题。VB和C#都生成一样的IL,因此理论上说不会有性能的差异。但许多人为什么说C#的性能高于VB.net呢?这是因为VB.net支持即时编译,就是一边书写代码一边编译。这样可立刻发现语法错误,使调试变得更加容易。但是这样一来VB就需要随时浏览整个代码文件,并把临时数据储存。这造成VB.net生成的代码中常常具有冗余部分。但也不能就此下结论说VB比C#慢,当用户选择打开优化并且以Release方式编译工程,就能得到与C#一样简短快速的代码。

学习上的难度

这部分不仅仅初学者需要考虑,那些从现有开发工具转移到.net的开发人员也需要考虑。首先,VB和C#都是非常简单的,对于初学者来说,VB提供伸缩性更强的空间,因此比C#更加易于接受。但这只是相对而言,C#对于初学者来说也不会有太多的困难。

对于使用Visual Basic6或其他版本的程序员来说。VB.net的语法显然要比C#更加接近VB6,网上流传的VB与VB.net差别被过分夸大,使部分程序员退缩。其实VB.net增加的只是面向对象的思想,许多VB程序员不具备完善的面向对象编程开发经验,因此觉得VB.net难以接受,这是很容易克服的。想想看,即使你要使用C#不也得学习面向对象吗?至于有C/C++/Java经验的人,C#是小菜一碟。刚才说过C#和VB实际上都很简单,所以不见得VB程序员学习C#就要比C/C++程序员来的困难,反之亦然,有C/C++经验的人也可以果断的选择VB。

移植现有代码

这一部分是程序员最头疼的部分。但对语言选择有决定性的意义。

从VB6移植代码的程序员,最佳选择就是VB.net,因为其他.net语言没有一种是与VB相似的。而且即使VB6的工程移植到VB.net非常困难,也有一个移植向导可以帮助你完成大部分工作。如果手工把他移植到C#,需要白白花费大量的时间。而且刚开始使用C#的VB程序员通常都会为C#缺少他们熟悉的函数而头疼。VB.net不会出现这种情况。

从ASP移植到ASP.net,首选语言仍然是VB.net,因为多数程序员使用的ASP语言是VBScript,只有VB.net最大程度地接近这种语言。

C#对于移植代码似乎没有作用,了解C#的人都明白,把现有C/C++代码放到C#中运行几乎是100%不能通过的。所以,如果需要移植C/C++代码,最好使用Visual C++.net。他做到了最好的新旧结合。C#仅仅用于编写新的.net应用程序。

如果需要从Java移植代码,C#可以选择。同时还有J#及其他一些MS提供的转换工具。

文档和资源方面的考虑

在MSDN文档中,C#和VB是同等看待的。所有文档和例子都是有VB和C#两份的。因此,在寻求资源方面都不用担心。互联网上的资源,C#要多于VB,特别是国内,有倾向于C#的潮流。但是ASP.net的资源VB较多。国内缺乏VB.net资源是影响VB.net推广的重要原因。但是在国外有很多非常成熟的VB技术,如掌上设备的开发技术。

代码风格和杂项问题

C#书写的代码比VB平均短小20%,许多人不喜欢VB中过长的关键字。当然他们可以选择C#。但在开发环境中,VB的自动完成功能比C#更完善,其实30%的代码都是自动补充的。因此,实际上VB程序员不会比C#多打多少字。但VB语言换行比C#麻烦,如果需要书写大量繁杂而长的代码,最好选择C#。VB的代码接近完整的英语,比C#更加易读。如果是初学者不妨选择VB。

C#与VB.net有什么不同呀?

都说在.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支持它,就真的是完美语言了。

文章名称:vbnet和c,vbnet和aspnet
转载来源:https://www.cdcxhl.com/article14/phcige.html

成都网站建设公司_创新互联,为您提供网页设计公司品牌网站建设企业网站制作软件开发网站改版网站设计公司

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都定制网站网页设计