為什麼VB有Dim obj As Foo = New Foo()這種語法? (初級) (Visual BASIC)

Abstract
以前在寫VB/VBScript時,一直不了解為什麼VB提供兩套New語法,Dim obj As New Foo()和Dim obj As Foo = New Foo(),尤其後者,重複兩次class name,這麼長的語法,覺得很累贅,所以都是用前者,今天才發現,原來後者是為了支援Polymorphism(多型/多態)而用。

Introduction
學了Design Pattern之後,GoF的第一句真言是Programming to an Interface,not to an Implementation. (針對介面(接口)而寫,不要針對實作而寫)

所以在ISO C++,會很習慣的這樣寫

 為什麼VB有Dim obj As Foo = New Foo()這種語法? (初級) (Visual BASIC) Interface *  foo  =   new  Foo;


C#

 為什麼VB有Dim obj As Foo = New Foo()這種語法? (初級) (Visual BASIC) Interface foo  =   new  Foo();


但在VB,就得用第二種寫法才能達成

 為什麼VB有Dim obj As Foo = New Foo()這種語法? (初級) (Visual BASIC) Dim  foo  As   Interface = New Foo()

原來以前是因為不懂polymorphism(多型/多態),不會用interface,誤會了VB,以此文向VB致歉。  為什麼VB有Dim obj As Foo = New Foo()這種語法? (初級) (Visual BASIC)

你可能感兴趣的:(new)