zoukankan      html  css  js  c++  java
  • VB.Net与C# 的语法比较

    最近看代码或写代码时,经常把VB与C#的基本语法搞混,为方便查看,特对其异同进行对比: 

    變數初始化

    VB.NET 自動將所有的變數初始化成 0 或 nothing。C# 在你未初始化變數之前不准你用該變數。 

    選擇性參數(Optional parameters)

    C# 不提供函數選擇性參數,但仍可以利用重载的方法,提供选择性参数

    静态方法的定义

    C# 和 VB.NET 都在 Class 支援靜態方法、屬性和 fields,C#中为Static,VB.NET 稱為 Shared,例如

        publicstaticvoid StaticMethod()

        {

            Console.WriteLine("不需要建立物件就可以呼叫");

        }

        PublicSharedSub ShareMethod()

            Console.WriteLine("可以不建立物件來呼叫函數")

        EndSub

    Switch 和 Select Case 語法

    在 C# 的 switch 語法讓你以某個值或語法跳到一個程式區塊。每一個區塊與一個常數值連結在一起。你可以使用多個常數值與 case 語法建立如下的程式碼

    switch(i)

    {

        case 4:

        case 5:

            break;

        case 6:

        case 7:

            break;

        default:

            break;

    }

    VB 則讓你可以組合常數或更複雜的語法,如下

    SelectCase i

        Case 4, 5

        Case 6 To 9

        CaseElse

    EndSelect

    不只如此,VB.NET 也讓你可以在 Select Case 語法中如同使用常數一般使用變數 

    傳值或傳址呼叫

    所有的 VB.NET 參數都要明確地利用 ByVal 和 ByRef 宣告,C# 的參數都是傳值,除非以 ref 關鍵字宣告。 

    Virtual/Overridable 方法

    C# 使用 Virtual 關鍵來宣告就算是參照到基礎 Class,但仍是呼叫到正確衍生類別的方法。以 override 宣告衍生的函數

    VB.NET 使用 Overridable 關鍵字來宣告 virtual 函數,並需要使用 Overrides 關鍵字來宣告衍生的函數。

    Abstract/MustInherit 方法

    C# 用關鍵字 abstract 來標示需要由衍生 Class 來實现的方法,

    VB.NET 使用 MustInherit 關鍵字來做同樣的標示(同時使用在 Class 和方法)。

    Sealed/NoInheritable Classes

    C# 用關鍵字 Sealed 來標示不可以被繼承的 Classs,VB.NET 以 NotInheritable 關鍵字來做相同的事。 

    VB.NET 支援所有的 CLS 標準資料型態,C# 增加支援無正負號的資料型態。

    下表列出兩個語言的基礎型態以及是否與 CLS 相容

    VB.NET C# 與 CLS 相容
    Object object Y
    String string Y
      sbyte N
    Short short Y
    Integer int Y
    Long long Y
    Byte byte Y
      ushort N
      uint N
      ulong N
    Single float Y
    Double double Y
    Boolean bool Y
    Char char Y
    Decimal decimal Y
  • 相关阅读:
    NYOJ 42 一笔画问题
    python raise 使用方法
    五种异常处理机制:默认异常处理、assert与with...as
    都想学
    骆驼祥子
    XSHELL使用技巧
    明朝那些事儿
    百年孤独
    Linux常用命令
    重庆森林-金城武
  • 原文地址:https://www.cnblogs.com/lbnnbs/p/4782074.html
Copyright © 2011-2022 走看看