Optional Parameter Overloading and Return Arrays Widening Conversion

Posted at : Sep/19/2013
2270 Views | 0 Comments

Di Visual Basic sebelum versi 2012 penggunaan overload method tidak dapat dibuat dengan hanya dibedakan dari penggunaan optional parameter saja. Selain itu salah satu batasan lainnya yaitu tidak dapat melakukan konversi tipe data secara widening dalam sebuah fungsi yang mengembalikan sebuah tipe array. Apabila dilakukan kompilasi maka hasilnya akan mendapatkan compile time error. Hal tersebut tidak berlaku lagi di Visual Basic 2012. Mari kita lihat contohnya.

Optional Parameter Overloading

Asumsikan terdapat sebuah class Customer yang memiliki overload method dalam sebuah project yang dibuat dengan menggunakan Visual Studio 2010 :

Public Class Customer
    Public Sub AddCustomer(ID As Integer)
 
    End Sub
 
    Public Sub AddCustomer(ID As Integer, Name As String)
 
    End Sub
 
    Public Sub AddCustomer(ID As Integer, Name As String,
                           Optional City As String = "Bandung")
 
    End Sub
End Class

Apabila dilakukan kompilasi maka akan menghasilkan compile time error sbb :

Copy kode class di atas ke dalam sebuah project yang dibuat dengan menggunakan Visual Studio 2012 dan lakukan kompilasi, hasilnya dapat dilihat sbb :

Compile time error tidak terjadi di VB 11. Apabila prosedur AddCustomer dieksekusi tanpa memberikan nilai terhadap parameter City maka prosedur AddCustomer yang kedua yang akan dieksekusi oleh CLR.

Return Arrays Widening Conversion

Asumsikan terdapat sebuah class yang memiliki Shared Function dalam sebuah project yang dibuat dengan menggunakan Visual Studio 2010 :

Public Class ReturnArrayWideningConversionDemo
    Public Shared Function PriceList() As Long()
        Dim intP1 As Integer = 1000
        Dim intP2 As Integer = 2000
        Return {intP1, intP2}
    End Function
End Class

Fungsi diatas mengembalikan tipe data Long yang berupa Array. Didalam fungsi tersebut terdapat proses return yang mengembalikan tipe data integer dalam sebuah Array. Apabila dilakukan kompilasi maka akan didapatkan hasil sbb :

Dari pesan error diatas dinyatakan bahwa array integer tidak dapat di konversikan ke dalam array long (widening conversion). Namun apabila kode tersebut di kompilasi dengan menggunakan Visual Studio 2012 pesan error tersebut tidak akan muncul karena proses widening conversion dari return sebuah array itu dimungkinkan. Namun penggunaan fitur tersebut di Visual Studio 2012 juga bukan tanpa syarat. Mari kita lihat apabila dilakukan modifikasi terhadap fungsi di atas seperti dibawah ini :

Public Class ReturnArrayWideningConversionDemo
    Public Shared Function PriceList() As Long()
        Dim intP1 As Integer = 1000
        Dim intP2 As Integer = 2000
        Dim intPrice As Integer() = {intP1, intP2}
        Return {intPrice}
    End Function
End Class

Apabila dikompilasi akan didapatkan error sbb :

Pesan error yang sama yang dihasilkan oleh Visual Studio 2010. Dari hasil diatas dapat disimpulkan satu syarat penggunaan fitur widening conversion tersebut yaitu nilai yang dikembalikan harus langsung di assign setelah Return keyword dan tidak dapat ditampung terlebih dahulu dalam sebuah variabel array. Semoga bermanfaat :)


[Comments]


[Write your comment]

Name (required)

Email (required-will not published)

Comment
QNPO
Input code above below (Case Sensitive) :

ABOUT ME

Rully Yulian MF
Rully Yulian Muhammad Firmansyah | Founder & IT Trainer Native Enterprise | MCT (2008-2019) | MVP (2009-2016) | Xamarin Certified Professional | MTA | MCAD | MCPD | MOS | Bandung, West Java, Indonesia.

[Read More...]

TOP DOWNLOAD

Mapping Hak Akses User Pada MenuStrip Sampai Control Button
downloaded 6982 times

Bagaimana caranya menginstal database ketika deploying sebuah aplikasi?
downloaded 4893 times

Simple Voice Engine Application With Sound Player Class...
downloaded 4045 times

Change Group,Sort Order, Filtering By Date in Crystal Reports
downloaded 3460 times

WinForms DataGrid Paging With SqlDataAdapter
downloaded 2881 times


LINKS

CERTIFICATIONS

Xamarin Certified
MOS 2007
MCT
MCPD
MCTS
MCAD.NET
ASP.NET Brainbench

NATIVE ENTERPRISE

Native Enterprise - IT Training

FOLLOW ME

Youtube  Facebook  Instagram  LinkedIn   Twitter

RSS


NATIVE ENTERPRISE NEWS

© Copyright 2006 - 2024   Rully Yulian MF   All rights reserved.