![]() |
|
||||||||||||||
| | 网站首页 | 数据库教程 | web编程 | 服务器 | 程序设计 | | ||
|
||
|
||||||
| VB.net与C#的异同 | ||||||
作者:佚名 文章来源:不详 点击数: 更新时间:2007-8-6 ![]() |
||||||
最近找工作找了好几家人家都要有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 | ||||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | ||||||
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 网站地图 | 管理登录 | | |||
|