网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 网络学院 >> 程序设计 >> VB编程 >> 文章正文
  VB.net与C#的异同            【字体:
VB.net与C#的异同
作者:佚名    文章来源:不详    点击数:    更新时间:2007-8-6    

最近找工作找了好几家人家都要有c#经验的。
正在装载数据……
虽然自己曾经自己练习做了些c#的东西可是从来没有系统的看过这个语言。注明一点我过去的一年的工作基本上用的是vb.net+SQL的所以要学习了解。在网上搜来搜去感觉这个归纳还不是很不错的所以引用一下,一个给自己收藏呵呵。这个是转载哦,懒的归纳,别人做了就引用一下,哈哈。

vB.net与C#的异同
1.启动工程:[VB.net]即可以从Main方法启动
又可以直接指定从某个窗体启动
[C#]
只能从Main方法启动

2.获取启动参数
[VB.net]
可以从Main的参数获取:Sub Main(cmd() As String)
可以用Command()方法获取
可以用System.Environent.GetCommandArgs()方法获取
[C#]
能从Main的参数获取:void Main(string[] cmd)
能用System.Environent.GetCommandArgs()方法获取
3.引用命名空间
[VB.net]
即可以在工程中设置全局引用
又可以在所有类代码文件中显式引用
[C#]
只能在代码种显式引用,且所有类代码文件均要书写引用段代码

4.引入命名空间的语法
[VB.net]
即可以分行书写:
Imports System
Imports System.net
Imports System.Drawing
又可以连行书写:
Imports System , System.net , System.Drawing
[C#]
只能分行书写
using System;
using System.net;
...

5.变量及其类型的约束
[VB.net]
即可以 强制要求变量在使用前声明(Option Explicit On)
又可以 不要求事先声明变量(Option Explicit Off)
即可以 强制要求严格的类型匹配(Option Strict On)
又可以 自动类型转换、自动反射(后期绑定)(Option Struct Off)
[C#]
只能使用前先声明、强制严格类型匹配

6.代码的语句分隔符
[VB.net]
VB的语句分隔符是冒号,可以由回车符替代,如下示例:
即可以
A += 1 : For I as Int32 = 100 To 0 Step -1 : MyCollection.Add(A) : Next
又可以
A += 1
For I As Int32 = 100 To 0 Step -1
    MyCollection.Add(A)
Next
[C#]
语句分隔符只有分号一种,无论任何时候都不能省略分隔符(分号)

7.基本类型变量声明
[VB.net]
即可以Dim strA As String,又可以Dim strA$
即可以Dim iA As Integer,又可以Dim iA%
即可以Dim dblA As Double,又可以Dim dblA#
[C#]
只能
string strA;
int iA;
double dblA;

8.声明数组
[VB.net]
即可以 Dim bytTemp() As Byte
又可以 Dim bytTemp As Byte()
[C#]
只能
byte[] bytTemp;

9.声明立即实例化的变量
[VB.net]
即可以 Dim objColl As ArrayList = New ArrayList
又可以 Dim objColl As New ArrayList
[C#]
只能 ArrayList objColl = new ArrayList();

10.从过程中返回
[VB.net]
即可以直接 Return
又可以Exit (Sub,Function,Property ...)
[C#]
只能 return;

11.设置函数的返回值
[VB.net]
即可以 “Return 返回值”
又可以 “FunctionName = 返回值”
[C#]
只能 “Return 返回值;”

12.特殊条件的异常处理
[VB.net]
即可以
Catch ex As SomeException
  If 条件 Then ...
End Try
又可以
Catch When 条件
...
End Try
[C#]
只能
catch(exception ex){
  if(条件) ...
}

13.参数逐增的重载方法
[VB.net]
即可以
Sub (pa)
sub (Pa,Pb)
Sub (Pa,Pb,Pc)
又可以
Sub (Pa,Optional Pb, Optional Pc)
[C#]
只能
void(pa)
void(pa,pb)
void(pa,pb,pc)

14.委托的调用
[VB.net]
即可以 theDele
又可以 theDele()
又可以 theDele.Invoke()
[C#]
只能theDele();

15.事件的引发
[VB.net]
即可以RaiseEvent eventSpec(Me,e)
又可以If eventSpecevent IsNot Nothing then eventSpecevent(Me,e)
[C#]
只能 if(deleEvent != null) deleEvent(this,e);

16. 引用WIN32 API
[VB.net]
即可以Declare Function XXX Lib "user32.dll" (ByVal hWnd1 As ...
又可以
<DllImport("user32.dll",EntryPoint = "XXX")> Function XXX ...
[C#]
只能[DllImport("user32.dll", EntryPoint = "XXX"] external ...

17.事件的挂接
[VB.net]
即可以
Addhandler SomeObject.SomeEvent, Addressof SomeDelegate
Addhandler SomeObject.SomeEvent2, Addressof SomeDelegate
又可以Sub XXX () Handles SomeObject.SomeEvent,SomeObject.SomeEvent2
[C#]
只能
SomeObject.SomeEvent += XXX;
SomeObject.SomeEvent2 += XXX;
void XXX() {}

18.按名访问集合项
[VB.net]
即可以 Items("XXX")
又可以 Items!XXX
[C#]
只能 Items["XXX"]

19.全局共享(静态)类
[VB.net]
即可以 Module SomeClass
又可以
Class SomeClass
  shared sub ...
[C#]
只能
class SomeClass{
  static ...
}

20.关于VB特有函数
(1)设置字符串的某部分值
[VB.net]
即可以 Mid(strT, 2, 4) = "000"
又可以 strT = strT.Substring(0, 1) & "000" & strT.Substring(4)
[C#]
只能 strT = strT.Substring(0, 1) + "000" + strT.Substring(4);

(2)取右端字符串
[VB.net]
即可以 strT = Right(strT , 4)
又可以 strT = strT.SubString(strT.Length - 4)
[C#]
只能 strT = strT.SubString(strT.Length - 4);

(3)消息框
[VB.net]
即可以 MsgBox(strMsg, MsgBoxStyle.Information Or MsgBoxStyle.OKOnly, "Test")
又可以 MessageBox.Show(strMsg, "Test", MessageBoxButtons.OK, MessageBoxIcon.Information)
[C#]
只能 MessageBox.Show(strMsg, "Test", MessageBoxButtons.OK, MessageBoxIcon.Information);

(4)数值转换
[VB.net]
即可以CType("&H2B20", Integer)
又可以Val("&H2B20")
又可以Convert.ToInt32("0x2B20", 16)
又可以Int32.Parse("2B20", Globalization.NumberStyles.HexNumber)
[C#]
Convert.ToInt32("0x2B20", 16);
Int32.Parse("2B20", Globalization.NumberStyles.HexNumber);

21.调试断点的设置
[VB.net]
即可以在代码上设置断点
又可以 用Stop语句动态中断
[C#]
只能在代码上设置断点 


本文来源:http://blog.csdn.net/iash123/archive/2007/07/06/1681250.aspx
站内文章搜索 高级搜索
文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
     如何在ado中使用connect…
     vb 贪吃蛇 单人版游戏 (…
     关于在vb中进行com组件的…
     用vb6.0编写自我升级的程…
     vb自动登陆网络站点详解…
     vb打造超酷个性化菜单(…
  • Sevrlet 中防止中文乱码策略

  • (JSP)在文本域中显示超链接n…

  • genexus中对字符串的格式补空…

  • SIP简介,第2部分:SIP SERV…

  • JavaWeb中的Session、Sessio…

  • tomcat下配置jspservletbean…

  • .net程序员的盲点(八):泛…

  • OpenCV在VC.net,VC6.0等中的…

  • 同步租塞SOCKET编程

  • 内存管理内幕--Jonathan Bar…

  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    网络学院©2007 www.23book.net
    为您提供web编程,vb编程,vc编程,服务器架设管理,数据库设计等方面的知识 站长:David