Beware of "Me" and "MyClass"...

Created at : Mar/21/2007  
803 Views   0 Comments

Mungkin kebanyakan dari kita semua yang menggunakan VB.NET as his / her programming language sering / pernah menggunakan keyword Me dan MyClass. Namun apakah pernah mendapatkan hasil yang tidak kita inginkan dari penggunaan kedua keyword tsb? Me dan MyClass sebenarnya serupa tapi tak sama. Keyword tsb merujuk pada instance dari sebuah class yang sedang running / aktif. Tapi kalau keyword tsb di terapkan pada sebuah prosedur yang Overridable maka hasilnya akan berbeda.

Misalkan saya mempunyai dua buah class. Yang satu sebagai Base Class nya, yang kedua sebagai Child Class. Pada class yang pertama terdapat beberapa prosedur yang overridable. Dan pada class yang kedua terdapat prosedur yang Overrides prosedur di Base Class...Code nya seperti dibawah ini :

   1:  Public Class KampusITB
   2:      Public Overridable Sub Lokasi()
   3:          Console.Write("Bandung,")
   4:      End Sub
   5:   
   6:      Public Overridable Sub BerdiriTahun()
   7:          Console.Write("1920")
   8:      End Sub
   9:   
  10:      Public Overridable Sub InfoDetail()
  11:          Console.Write("ITB,")
  12:          MyClass.Lokasi()
  13:          MyClass.BerdiriTahun()
  14:          Console.ReadLine()
  15:      End Sub
  16:  End Class

Perhatikan code di atas...prosedur tsb memanggil prosedur Lokasi dan BerdiriTahun dengan menggunakan keyword "MyClass"

class yang kedua :

   1:  Public Class TeknikGeofisika
   2:      Inherits KampusITB
   3:   
   4:      Public Sub Departemen()
   5:          Console.Write("FIKTM")
   6:      End Sub
   7:   
   8:      Public Overrides Sub Lokasi()
   9:          Console.Write("Jl.Ganesha 10,Bandung,")
  10:      End Sub
  11:   
  12:      Public Overrides Sub InfoDetail()
  13:          MyBase.InfoDetail()
  14:      End Sub
  15:  End Class

class yang kedua ini inherits dari class yang pertama, dan Overrides beberapa prosedurnya, salah satunya yaitu prosedur InfoDetail...Ok...sekarang kita buat sebuah instance object dari class yang kedua :

   1:  Module Module1
   2:   
   3:      Sub Main()
   4:          Dim aClass As New TeknikGeofisika
   5:          aClass.InfoDetail()
   6:      End Sub
   7:   
   8:  End Module

hasilnya :

sekarang kita rubah code class yang pertama pada prosedur InfoDetail :

   1:      Public Overridable Sub InfoDetail()
   2:          Console.Write("ITB,")
   3:          Me.Lokasi()
   4:          MyClass.BerdiriTahun()
   5:          Console.ReadLine()
   6:      End Sub

keyword MyClass yang digunakan untuk memanggil prosedur Lokasi kita ganti dengan Me...sekarang kita lihat pengaruhnya...

Ada perbedaan hasil dari penggunaan keyword "Me" dengan "MyClass". Perbedaan hasil tersebut hanya akan berpengaruh pada Overriding impact saja, tanpa Overriding maka hasilnya akan sama saja. Jadi kalau kita gunakan MyClass pada sebuah overridable prosedur maka instance dari BaseClass yang memanggil prosedur tsb akan eksekusi prosedur yang terdapat di BaseClass nya...Kalau "Me" akan eksekusi prosedur yang terdapat di instance class yang bersangkutan...

Mungkin ada dari beberapa teman kita yang tidak menyadari penggunaan "Me" dan "MyClass" termasuk saya dulu  saya kira sama saja kedua keyword itu , tapi ternyata selidik punya selidik setelah di telisik...


[Comments]

[Write your comment]
Name (required)
URL (optional)
Example : http://www.yulianmf.com  
Comment

YIRK
Input code above below (Case Sensitif) :
About Me 
Rully Yulian MF
My Name is Rully Yulian Muhammad Firmansyah. I am an IT Trainer, IT Consultant and Application Developer spesializing in Microsoft .NET technology and SQL Server database. I live in Bandung, Indonesia. My hobby is to play Guitar. [Read More...]
Top Download 
Bagaimana caranya menginstal database ketika deploying sebuah aplikasi? : Downloaded 2231 times  
Change Group,Sort Order, Filtering By Date in Crystal Reports : Downloaded 2192 times  
Simple Voice Engine Application With Sound Player Class... : Downloaded 1522 times  
DataGridView Grouping : Downloaded 1243 times  
WinForms DataGrid Paging With SqlDataAdapter : Downloaded 1232 times  
Article Category 
Links 
Award 
Certifications 
MOS 2007
MCAS
MCT
MCPD
MCTS
MCAD.NET
ASP.NET Brainbench
Native Enterprise - IT Training 
Native Enterprise Facebook Group 
My Facebook 
My LinkedIn 
Syndication (RSS 2.0) 
Powered By 
Native Enterprise News