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

VB.NET VS C#.

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

        Dim b As New BClass()

        Dim i As Iint

        i = b

        b.x()

        i.x()

        Console.ReadLine()

    End Sub

End Module

VB.NET 需要使用 Implements 關鍵字來明確定義哪個方法實做哪個介面方法。事實上,你可以一個方法來實做多個不同的介面方法,如果介面定義如下:

Interface Iint

    Function x() As Integer

    Function y() As Integer

End Interface

你可以一個方法實做這兩個,程式範例如下

Private Function IintX() As Integer Implements Iint.x, Iint.y

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

End Function

當你有兩個相似的介面並共享許多相同的方法,這個實做方式就很有用。

對物件語法的判決

程式語法對程式設計師來說是信仰問題,大家都比較喜歡自己熟悉的語法,其實沒啥好評斷的。

從以上的描述中你也可以發現其實這兩的語言的差異性很小,兩者都有相似的功能。

但無論如何,我必須在物件語法上判 VB.NET 贏,就以以下繼承語法來看

    public class BClass:AClass,Iint

Public Class BClass

    Inherits AClass

    Implements Iint

以及以下控制繼承的關鍵字

abstract,sealed,virtual,new

MustInherit,NotInheritableOverridable,OverridesShadows

當一看到程式碼想要了解它在做啥事,特別是剛畢業的新程式設計師要接舊程式時,如欲他迅速上手並解決模糊不清的錯誤,或想增加新功能時,哪一種語法較容易理解?

Visual Basic.NET

雖然兩者差不多,但 VB.NET 贏得這一項。

事件(Events)

在 C# 你必須要完成很多的動作後才能定義事件,第一步你必須要宣告事件所需的 delegate type 如下

public delegate void ChangedEventHandler(object sender, EventArgs e);

這定義了事件的 signature(參數和參數型態)。 e 參數是繼承自 EventArgs class 的任意 class 以包含事件參數的各種欄位。

接著 Class 要定義一個該 delegate 型態的事件變數

public event ChangedEventHandler Changed;

要觸發這個事件,Class 呼叫

Changed(this,TheEventArguments);

要承接這個事件,使用者程式必須要定義一個與 delegate signature 相同的函數

private void ObjectChanged(object sender,EventArgs e)

{

    Console.WriteLine(e.ToString);

}

並且需要連結這個函數與發出事件 delegate 的物件

a.Changed+=new ChangedEventHandler(ObjectChanged);

譯者註:整個架構如下

namespace ConsoleApplication2

{

    using System;

    public class EvtArg:System.EventArgs

    {

        public string strEvt;

        public EvtArg(string strIn)

        {

            strEvt=strIn;

        }

    }

    public delegate void ChangedEventHandler(object sender, EvtArg e);

    public class AClass

    {

        public event ChangedEventHandler Changed;

        public virtual int x()

        {

            Console.WriteLine("在基礎 Class 的 x 以 Changed 觸發事件");

            Changed(this,new EvtArg("事件原因..."));

            return(0);

        }

    }

    class EvtHand

    {

        public void ObjectChanged(object sender,EvtArg e)

        {

            Console.WriteLine("ObjectChanged 處理事件:" + e.strEvt);

        }

    }

    class Class1

    {

        static void Main(string[] args)

        {

            AClass a =new AClass();

            EvtHand h=new EvtHand();

            a.Changed+=new ChangedEventHandler(h.ObjectChanged);

            a.x();

            Console.ReadLine();

        }

    }

}

一剛開始這一定會造成困擾,就算使用一陣後仍不太能夠適應。

VB.NET 的程式設計師可以用完全相同的方式觸發事件,另外也可以使用與 VB6 相容的傳統方式觸發事件,在 Class 中可以定義事件如下

Event Changed() 

你可以使用任何你想定義的事件 signature,一般會用 Sender,EventArgs 的技巧如下

Event Changed(Byval Sender As Object,ByVal e As EventArgs)

觸發事件可以透過 RaiseEvent 關鍵字

RaiseEvent Changed()

使用事件的物件可以宣告如下

Dim WithEvents b As BClass

並透過以下的方式將處理事件的方法和事件連結起來

Sub EventHandle() Handles b.Changed

上一页  [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……
    咸宁网络警察报警平台