程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB.NET >> VB.NET和C#的比照

VB.NET和C#的比照

編輯:VB.NET

VB.NET和C#的比照。本站提示廣大學習愛好者:(VB.NET和C#的比照)文章只能為提供參考,不一定能成為您想要的結果。以下是VB.NET和C#的比照正文


全局層

VB支持Module,是一種全部成員都是靜態的特殊類型

C#支持static class,和VB的Module相似;

VB的Imports語句可以把類的靜態成員導入,而C#的using語句沒有這個功用

Imports System.Math

VB可以選擇變量能否必需聲明,以及類型能否必需指定(經過Option語句)

C#則默許是VB最嚴厲的形態

C#可以運用extern alias指定順序集的別名,並運用別名限定運算符::來解析類名抵觸的兩個順序集

VB沒有這個功用,但可以用Global關鍵字取得命名空間級別稱號抵觸解析才能

C#可以指定友元順序集,VB不支持

//成員層

VB可以直接重寫Object.Finalize辦法,而C#必需采用析構函數的語法

C#可以指定attribute的target以便清楚地放置attribute,而VB則經過尖括號的地位來決議,有時分寫不出某種C#可行的語法

VB可以重載這些C#不支持的運算符:&, ^, Like, \

C#可以重載這些VB不支持的運算符:++, --, !

VB中子類的結構函數,先調用父類的結構函數,然後才初始化子類的字段

C#中子類的結構函數,先初始化子類的字段,然後才調用父類的結構函數

VB的Implemnts語句可以為完成接口的辦法改名,改動訪問級別

C#不支持但是有一個顯式完成的語法可以幫助

VB的函數重載,子類和父類的辦法視為同級

C#的函數重載,子類優先於父類

VB的Main函數自動加,可以改

//持續成員層

C#的自定義event可以修正add和remove的規則

VB的自定義Event除了C#的之外,還支穩健載RaiseEvent語句的用法

VB的Event可以直接書寫Event參數,自動生成Delege類型

C#的event必需指定delegate類型

VB支持WithEvents/Handles靜態事情綁定語法,也支持AddHandler靜態綁定辦法

C#的事情只支持運用+=靜態綁定

VB的屬性(Property)可以帶參數

C#的屬性不能帶參數

雖然不支持手工定義,VB支持屬性按援用傳遞值,C#不支持

VB可以指定一個帶有參數的屬性為Default,於是支持索引語法

C#則必需把這個東西聲明為索引器,即this語法

VB允許辦法帶有若干可選參數(Optional)可指定默許值

C#不允許

C#支持out參數,傳入前不需求初始化

VB不內置支持

C#支持類中運用fixed buffer,即固定大小的相似數組的成員

VB不支持

C#支持依照參數能否帶有ref/out停止函數重載

VB不支持這種重載

C#允許僅大小寫區分的兩個函數或變量存在

VB不區分大小寫,因而也不允許

//函數層

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有一個十分好用Microsoft.VisualBasic.dll,完成了許多協助函數,Application Framework使用順序框架,My命名空間等

C#只能望穿秋水了……

C#以out/ref或許大小寫區分不同函數,這就是不契合CLS的。

VB的每個特性簡直都是CLS兼容的(即便是那些C#不支持的),在VB中運用不會從基本上影響到與C#的交互

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved