Optional Parameter Overloading and Return Arrays Widening Conversion

.NET Framework , Posted at : Sep/19/2013  
1860 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

TGYI
Input code above below (Case Sensitive) :
About Me 
Rully Yulian MF
Rully Yulian Muhammad Firmansyah | Microsoft Certified Trainer | IT Trainer at Native Enterprise | IT Consultant | Software Developer | MCAD | MCPD | MOS | Bandung, West Java, Indonesia.
[Read More...]
Top Download 
Mapping Hak Akses User Pada MenuStrip Sampai Control Button : Downloaded 6083 times  
Bagaimana caranya menginstal database ketika deploying sebuah aplikasi? : Downloaded 4689 times  
Simple Voice Engine Application With Sound Player Class... : Downloaded 3554 times  
Change Group,Sort Order, Filtering By Date in Crystal Reports : Downloaded 3324 times  
WinForms DataGrid Paging With SqlDataAdapter : Downloaded 2706 times  
Links 
Certifications 
MOS 2007
MCT
MCPD
MCTS
MCAD.NET
ASP.NET Brainbench
Native Enterprise 
Follow Me 
Facebook   LinkedIn   Twitter
Syndication 
Hosted By 
Native Enterprise News 
© Copyright 2006-2016   Rully Yulian MF   All rights reserved.