熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

VB.NET和C#逐層橫向對比[2]

2013-11-13 12:15:17  來源: .NET編程 

  //函數層

  VB支持局部Static變量

  C#不支持

  VB支持數組的最後一唯大小可變

  C#的數組大小不能改變

  VB的Try Catch語句支持Exit Try直接進入Finally

  C#無類似語句

  VB的Catch可以帶When子句使用NET的異常filter功能有選擇的進行捕獲

  C#完全不支持這一功能

  VB可以使用傳統的On Error方法非結構化地處理異常
  C#僅支持結構化

  C#支持使用checked語句暫時打開或關閉整數溢出檢查

  VB僅支持整個項目級別處理

  VB支持使用函數名作為返回變量也支持Return

  C#只支持Return

  VB的Try Using For For Each等語句支持使用前邊定義的變量

  C#的對應語句只能在語句開始處定義

  C#可以支持unsafe語法有限地支持指針和stack數據的訪問

  VB不支持

  C#支持yield return語法的迭代器生成

  VB不支持

  C#支持delegate語句就地生成支持closure的匿名方法

  VB不支持

  C#支持在委托與方法結合的過程中使用協變和反邊規則

  VB則只能使用完全匹配規則

  VB和C#的循環和分支有若干次要差別

  C#支持nullable類型的運算符跨類型支持

  VB需要手工完成同樣功能

  VB支持用實例訪問類的靜態成員

  C#只支持類明訪問

  VB支持按照非虛函數的規則調用自身類型定義的一個虛函數

  C#不支持這一功能

  類庫層

  VB有一個非常好用MicrosoftVisualBasicdll實現了許多幫助函數Application Framework應用程序框架My命名空間等
  C#只能望眼欲穿了……

  C#以out/ref或者大小寫區分不同函數這就是不符合CLS的

  VB的每個特性幾乎都是CLS兼容的(即使是那些C#不支持的)在VB中使用不會從根本上影響到與C#的交互

[]  []  


From:http://tw.wingwit.com/Article/program/net/201311/15508.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.