vb.netcsgl的简单介绍
VB、VB.NET、ASP、ASP.NET、C#、C#.net、.net的区别是什么啊?
VB是微软早期的面向过程的编程语言,输入pascal类型
VB.NET是运行在.NET
Framework之上的面向对象的语言,基本遵循VB的语法
ASP是微软早期的用于动态网页开发的语言,其特点是前后台代码写在同一文件中
ASP.NET是微软用于替代ASP的动态网页开发语言,特点是前后台代码分离
C#是微软专为.NET平台定制的语言,可以说是.NET平台上的最正统的语言,当然VB.NET在功能上与C#是完全一致的,二者编译后都会生成极度相似的IL(中间语言)
C#.NET没听说过,应该就是C#
.NET即.NET
Framework是现在微软的看家平台,所有的.NET程序都必须要在.NET
Framework上运行,你可以将其简单地看成是一个基础类库.(其实该框架还会帮助你管理资源分配等等)
Visual Basic .NET的编译
.NET语言,包括VB.NET,它们所开发的程序源代码并不是直接编译成能够直接在操作系统上执行的二进制本地代码,而是被编译成为中间代码,然后通过.NET Framework的通用语言运行时(CLR)——执行. 所有的.Net编程语言都被编译成这种被称为MSIL(Microsoft Intermediate Language )的中间代码,这与Java的字节码类似.所以呢虽然最终的程序在表面上仍然与传统意义上的可执行文件都具有".exe"的后缀名.但是实际上,如果计算机上没有安装.Net Framework,那么这些程序将不能够被执行.在程序执行时,.Net Framework将中间代码翻译成为二进制机器码,从而使它得到正确的运行.最终的二进制代码被存储在一个缓冲区中.所以一旦程序使用了相同的代码,那么将会调用缓冲区中的版本.这样如果一个.Net程序第二次被运行,那么这种翻译不需要进行第二次,速度会明显加快.
从该版本开始VB.NET已没有单独发售的IDE了,微软给Visual Basic .NET 以及C#开发者的IDE就只有Visual Studio 了.该版本增加了modern(原metro)风格的支持等众多新特性.
对于想从VB转到VB .NET的开发者来说,如果你只是喜欢Basic系列语言的代码风格,那么你的迁移会很顺利,如果你想沿袭之前VB的编程思想和习惯,你会很苦恼,原因之一就是VB .NET贯穿的是完全面向对象的思想,而VB不是.
Visual Basic .NET与VB都代表了Basic系列语言的编码风格,Visual Basic .NET是这种编码风格在.NET平台上的继承,而不是同系列语言VB的沿袭.
语言革命
C#与VB.net有什么不同呀?
都说在.NET里,.NET framework和CLR是应用运行的基础.那么VB.NET和C#是不是就完全一样,只是语法不同吗?
第一段:C#
--- 像VB一样简单,像C++一样强大的新语
C#是第一流的面向组件的语言
所有的语言元素都是真正的对象
开发强壮和可重用的软件
所有的.NET Framework中的基类库(Base Class Library)都由C# 编写
第二段:VB.NET
--- 完全面向对象的BASIC语言
①新语言特性完全面向对象– 继承(Inheritance), 重载(overloading), 共享的成员, 结构化异常处理
强壮的语言 – 严格的类型检查, 变量声明时初始化,支持垃圾收集(Garbage collection)
强大 – 支持委托(Delegates), free threading,Variant 数据类型被 Object 代替
①语法上的差异例如循环的写法
VB.NET
For I = 1 To 10
' for loop
Next I
C#
For (i=1;i11;i++) {
// for loop
}
另外Visual Basic 对大小写不敏感,而C#是大小写敏感的.
指针, 移位操作符, 内嵌的文档(XML)
重载操作符
更丰富的语法: 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等语法也会为移植而感到头痛.下面就看看他们最难移植的部分:
①.、Option语句.VB的Option语句可以打开或关闭变量声明检查和类型转换检查.尤其是Option Strict被关闭后,VB变成弱类型语言,很多类型转换都是自动的,移植到C#中会产生无数错误.所以呢,如果要将带有Option Strict Off语句的VB程序移植到C#,最好先在VB中将Option Strict打开,然后把所有类型转换出错的地方变成强类型转换,然后再进行移植.
((System.Button)sender).Text="启动";
就要使用VB的函数型运算符CType来实现.上面的代码正确的移植方法是:
CType(sender,System.Button).Text="启动"
千万不要使用某些人推荐的,将Option Strict关闭,然后用后期绑定调用sender对象的方法,这根本不符合程序移植不能改变本质的要求.
VB
Inherits
:
Implements
MustInherit
abstract
NotInheritable
sealed
Overridable
virtual
NotOverridable
MustOverride
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使用:=(冒号和等号).
public delegate void FuncType(Object e)
...
FuncType func;
func=new FuncType(this.SampleFunction1);
//调用
func(something);
//换指向另外一个函数
然而VB中,委派类型就像是一般的对象,有它的方法,与函数本身明显不同.你不能将过程的名字直接赋给一个委派类型的对象,而必须使用AddressOf运算符,下面的例子就是上文C#程序的VB版,注意那些实现不同的地方:
Public Delegate Sub FuncType(ByVal eAs Object)
Dim func As FuncType
func=New FuncType(AddressOf Me.SampleFunc1)
'调用
func.Invoke(something)
'换指向另外一个函数
对于事件定义,两种语言都是一个委派类型加一个事件属性,如:
[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
遇到这种情况,要看清Handles后面的所有对象和事件,将它们一一改写成动态绑定的语句:
==
myobj1.MyEvent+=this.XXX;
protected void XXX(...){}
Try
'发生错误的代码
'解决错误的代码
End Try
这段代码无法直接移植到C#中,只有用Exception对象取代Err对象获得异常信息,才能顺利移植.另外VB的When语句带给Try语句十分灵活的用法,必须用很高的技巧才能在C#中实现,这就需要具体问题具体分析了.
VB支持Exit Try语句,可以直接从Try块或Catch块跳转到Finally块.C#没有提供类似的语法,可以用以下技巧:
'一些语句
Exit Try
Finally
try
//一些语句
goto__leave;
finally
__leave://别忘了这里还有哦!
都说到这里了大家应该明白是利用了finally块无法跳过的特征,用goto语句模拟了Exit Try语句.
如果VB程序用的是VB特有的On Error GoTo语句实现的错误处理,问题就麻烦了.代码可能在过程中上下跳跃,无法预料语句的执行方式.这种代码理解起来就头痛,更不要说移植了.总体来说,把所有语句统统转移到try块中,然后用catch一一处理错误.遇到要返回(Resume语句)的时候,只好Copy代码了.反正不是一件容易的事情,慢慢改就是了.
Public Class Class1:Implements IMyInterface
Public Sub DoSth()Implements IMyInterface.Method1
End Class
public class Class1:IMyInterface
public void Method1()
如何在VB.NET中引用CSGL库?
在VB.NET中不能直接添加opengl,需要引用csgl库.具体方法如下:
vb.?net是面向对象的编程语言是对吗?
VB.net
相对VB出现巨大变化的是语意,从运行于基于COM的deterministic,
reference-counted的引擎之上的编程环境,转变为全面面向对象的基于.NET
Framework的语言..NET
Framework包括了CLR(使用通用垃圾收集机制和JIT编译引擎的虚拟机)和大量的类库.VB开发者进入VB.NET要面对新增的大量类库的问题.
VB.net 和C#.net 各有什么优缺点
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#的大括号{}太烦人).
扩展资料:
NET、C#和ASP.NET之间的区别 :
①.、NET是一个平台,一个抽象的平台的概念.
NET 平台其本身实现的方式其实还是库,抽象层面上来看是一个平台.
基本可以理解的NET核心就是NETFramwork.
NETFramework包括两个关键组成元素:
a. CommonLanguageRuntime,公共语言运行时(CLR0)-提供内在管理,代码安全性检测等功能.
b. NETFrameworkClassLibrary,.NET 框架类库(FLC)-提供大量应用类库,提高开发效率.
学习NET Framework 是所有.NET开发人员都必须的,否则开发NET程序永远都是停留在'外功'的招式,NETramework 是NET开发高手的'内功'修行之一.
程序设计语言仅仅是为了方便开发人员和计算机沟通的工具,虽然 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 规范.
用微软公司ASP.NET快速入门中的一句话来解释,ASP.NET是用于生成基于Web的应用程序的内容丰富的编程框架.
ASP.net 和C#的区别:
编写asp.net通常包括两部分的代码:网页层和后台处理层,网页就是用标记语言来写的,而网页对应的后台处理程序则需要.net语言来完成,目前主要是采用c#和vb.net.
可以说整个的asp.net网站通过c#或者vb.net来实现.而c#则是ms .netframework的主要语言,可以用在网站,桌面应用等方面.可以算是一种比较流行的编程语言.
以上就是能诗百科小编为大家整理的vb.netcsgl的简单介绍vb.netcsgl的简单介绍相关咨询主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!
