From C# to VB

來源:互聯網
上載者:User

註:C#3.0, VB9.0

這裡只是一些比較容易弄不清的地方,其它關鍵字的差異(比如abstract 和 MustInherit之類的)相信都是很簡單的了.

  • 模組(Module): 模組就是C#裡的靜態類,但是,在同一命名空間裡的其它類型裡,調用模組裡定義的方法不需要加模組類的名稱.比如 AAA.BB.XXModule有個M()方法,則在AA.BB.XXXXClass裡可以直接寫: M(),而不用寫XXModule.M()
  • 數組聲明: Dim a = new Int() {1, 2, 3} ,或者: Dim a(3) As Integer
  • 方法:分為兩種,有傳回值的叫Function,無傳回值的叫Sub
  • 聲明Function或Property時可以不指定類型(As Type), 預設為Object類型
  • 類型轉換: C#: var a = (TypeName)b; VB: Dim a = DirectCast(b, TypeName) C#: var a = b as TypeName; VB: Dim a = TryCast(b, TypeName)
  • 類型:C#: typeof(TypeName) VB: GetType(TypeName)   C#: a is TypeName VB: TypeOf a is TypeName
  • 操作符:/返回的是帶餘數的結果(CInt(46/10) = 5),\返回不帶餘數的結果, Mod返回餘數; VB有 +=, *=等運算子,沒有 ++, --等運行符
  • 對象初始設定式: Dim a = new XX with {.Property1 = value1, .Property2 = value2}
  • 源碼組織:VB裡一個語句要放在一行;可以用" _"放在行尾把兩行視為邏輯上的一行;語句結尾不要加分號;
  • 不使用方括弧:VB裡數組存取,含參屬性等都用圓括弧(),不用方括弧[], 應用屬性Attribute時用角括弧<>
  • 泛型:C#: List<string> VB: List(Of String)
  • 字串串連:VB裡用 & 來連接字串( 1 & "2" = "12", 1 + "2" = 3)
  • 字串:沒有C#裡的@""的對應物;字元轉義只支援""轉意成"; 分行符號等無法直接輸入
  • Lambda運算式: C#版: x => x.Property; VB版: Function(x) x.Property
  • 等同性: C#: x == b VB: x = b(如果有重載=操作符的話,Object類重載的不算) C#: ReferenceEqual(a, b)   VB: a is b
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.