转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> VB.NET程序 >> 正文
VB.NET VS C#.         ★★★★

VB.NET VS C#.

作者:闵涛 文章来源:闵涛的学习笔记 点击数:3504 更新时间:2009/4/23 19:01:51
Sub

End Class

可以透過以下兩種的程式碼使用

AClass.ShareMethod()

Dim a As New AClass()

a.ShareMethod()

這變成是哲理性的考量了,C# 提供了紀律:如果你想要建立與物件無關但以函數組成的函式庫(library),你必須建立 Class 來實際地將函數群組在一起,雖然你從來都不會為該 type 建立物件。由於所有的靜態成員仍需以 type 名稱來存取,會強制要求程式設計師明確知道該成員的共享特色。

VB.NET 提供了開發人員更大的彈性。你可以為一般功能函數建立傳統的標準模組,它可以在不指定任何 class 或模組名稱下直接使用。你可以存取物件的 instance 的 shared 成員,但這有讓 shared 物件與 instance 物件混淆的危險。

判決:我會為標準模組判  VB.NET 小贏,但仍強調這比較是個人偏見而非令人信服的邏輯判讀。我會在少有狀況下﹔程式設計師在 shared 和非 shared 成員混淆時,判給 C# 要求一定要透過 class 名稱來使用靜態成員的方式小贏。

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 在這方面明顯獲勝,雖然 C# 簡單的語法對讓撰寫有效率的程式碼有稍稍的幫助。

物件語法

以下是在 VB.NET 和 C# 間使用物件上語法相異的討論。這裡沒有做各項的評分,僅提供一個整體的判決。

傳值或傳址呼叫

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

Overloads

如果在 C# 宣告兩個相同方法名稱但不同的組成參數就自動是 overloads 的函數方式,VB.NET 需要明確地使用 Overloads 關鍵字。

呼叫基礎建構子(Base Constructors)

在 C# 要呼叫基礎建構子的語法如下

public AClass():base()

{

}

而 VB.NET 的語法如下

Public Sub New()

    MyBase.New()

End Sub

Virtual/Overridable 方法

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

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

Abstract/MustInherit 方法

C# 用關鍵字 abstract 關鍵字來標示需要藉由衍生 Class 來實做的方法,VB.NET 使用 MustInherit 關鍵字來做同樣的標示(同時使用在 Class 和方法)。

Sealed/NoInheritable Classes

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

其他的屬性

C# 使用 internal 關鍵字來定義 class 或成員的 scope 是在 assembly 之內,而 VB.NET 以 Friend 做相同的宣告。

Shadowing

VB.NET 當你在衍生的 class 宣告了與基礎 class 相同的成員名稱會提出警告,以強迫你 override 或是利用 Shadows 關鍵字(譯者註:Shadows 關鍵字在 VB.NET Beta1 似乎尚未支援)來標示當參照到衍生 Class 時,使用衍生 class 的成員而非基礎 class 的成員,而參照基礎 class 的 instance 時,使用基礎 class 的方法。C# 使用 new 關鍵字來隱藏從基礎 Class 繼承來的方法,並用 override 關鍵字來 override virtual 或 abstract 基礎 class 的方法。

介面(Interface)和繼承(Inheritance)

讓我們看一下 C# 和 VB.NET 如何實做 class 繼承和介面繼承。在這個範例中我們定義了介面 Iint,以及基礎 Class 稱為 AClass,以及衍生 AClass 的 BClass,並實做 Iint 介面。

在 C# 程式碼如下

namespace ConsoleApplication2

{

    using System;

    interface Iint

    {

        int x();

    }

    public class AClass

    {

        public int x()

        {

            Console.WriteLine("在基礎 Class 的 x");

            return(0);

        }

    }

    public class BClass:AClass,Iint

    {

        int Iint.x()

        {

            Console.WriteLine("在介面上的 x");

            return(0);

        }

    }

    class Class1

    {

        static void Main(string[] args)

        {

            BClass c=new BClass();

            Iint i=c;

            c.x();

            i.x();

            Console.ReadLine();

        }

    }

}

C# 不需要你明確地定義哪個函數實做哪個介面,也就是以下的程式碼

int Iint.x()

換成

new public int x()

則認為這個 x() 函數不僅可以直接存取,也是實做介面的 x() 方法。

而 VB.NET 的對應語法如下

Imports System.Console

Interface Iint

    Function x() As Integer

End Interface

Public Class AClass

    Function x() As Integer

        Console.WriteLine("在基礎 Class 的 x")

        Return 0

    End Function

End Class

Public Class BClass

    Inherits AClass

    Implements Iint

    Private Function IintX() As Integer Implements Iint.x

        Console.WriteLine("在介面上的 x")

    End Function

End Class

Module Module1

    Sub

上一页  [1] [2] [3] [4]  下一页


[Web开发]VS2005+SQL2005之.NET2.0数据库连接  [Web开发]VS2008和.NET3.5Beta2新特性(介绍及下载地址)
[Web开发]通过VS2005如何发布网站  [Web开发]VS2005安装了SP1后发布项目存在的问题之解决方案
[Web开发]VS2005如何建立(新建)网站项目  [Web开发]图文解说—如何通过VS2005测试网站程序性能
[系统软件]M$ Expression VS MM Studio  [常用软件]GB VS Maxthon之群组功能 群组
[VB.NET程序]定制VB.NET控件编程之拦截击键动作  [VB.NET程序]VB.NET 中调用浏览目录对话框
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台