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,例如

        public static void StaticMethod()

        {

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

        }

        Public Shared Sub ShareMethod()

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

        End Sub

     

    Switch 和 Select Case 語法

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

    switch(i)

    {

        case 4:

        case 5:

            break;

        case 6:

        case 7:

            break;

        default:

            break;

    }

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

    Select Case i

        Case 4, 5

        Case 6 To 9

        Case Else

    End Select

    不只如此,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

    转自:  http://dev.csdn.net/article/19/19408.shtm

  • 相关阅读:
    解决mac osx下pip安装ipython权限的问题
    [转载][翻译]Go的50坑:新Golang开发者要注意的陷阱、技巧和常见错误[1]
    PhantomJS 基础及示例 (转)
    Go -- 别人的博客
    [转]Go的50坑:新Golang开发者要注意的陷阱、技巧和常见错误-高级
    Go -- etcd详解(转)
    对require.js 的使用进行总结
    gatsbyjs 使用
    gatsbyjs 了解
    JAMstack 最佳实践
  • 原文地址:https://www.cnblogs.com/fredx/p/1631923.html
Copyright © 2011-2022 走看看