Tutorial Singkat C# Extension Method

[S]esuai namanya extension yang berarti tambahan, pada C# kita bisa menambahkan method baru pada sebuah kelas tanpa harus mengubah source code dari kelas yang bersangkutan. Terdengar musthail eh? atau justru terdengar amazing dan keren? hehe.. .Hal ini tidak mustahil dilakukan karena C# mendukung fitur yang namanya extension method.

C#

Pada kasus normal, misal kita punya kelas seperti ini pada file Foo.cs

Ketika ingin menambahkan method baru dengan nama GetBarHi maka yang kita lakukan adalah mengedit file Foo.cs di atas menjadi seperti ini

Lain cerita kalau kita menggunakan extension method. Menggunakan fitur ini maka yang terjadi adalah kita buat sebuah kelas baru yang methodnya merupakan sebuah extension method. Perhatikan kode di bawah.

file : FooExtension.cs

Perhatikan parameternya, this Foo foo menandakan kalau method ini adalah extension method yang ditambahkan pada kelas Foo, nantinya ketika kelas ini digunakan dia bisa memanggil extension method layaknya method biasa

Another Example

Kalau pembaca memiliki analisis yang tajam pasti akan bertanya dengan pertanyaan yang kurang lebih seperti ini.

Buat apa bikin extension method, kan tinggal menambahkan method pada source code kelas juga bisa, tidak perlu membuat kelas baru yang berisi extension method.

Iya bener, tapi untuk kasus tertentu kita tidak bisa melakukannya misal kita mau menambahkan method ReverseIT yang berguna untuk membalik sebuah string pada kelas string yang dimiliki oleh .NET framework. Bisakah kita menambahkan sendiri method itu ke dalam source code kelas string? Saya jawab tidak bisa. Alternatifnya ya tentu saja menggunakan extension method. Perhatikan kode di bawah

file : ReverseString.cs

Setelah membuat extension method, agar bisa digunakan maka perlu menambahkan using namespacemu pada kelas yang meng-instantiate kelas yang memiliki extension method. Contoh lengkap ada di bawah pada bagian Unit Test

Unit Test

Untuk memastikan 2 extension method pada 2 kelas berbeda yang telah kita buat di atas tadi bekerja dengan benar, kita perlukan sebuah Unit Test untuk mengujinya. Lihat kode UT di bawah ini

Jalankan pengujian dan enjoy the green check 🙂

UT

Facebook Comments
 

Agung Setiawan

Agung Setiawan adalah software engineer di BukaLapak.com, penulis sekaligus pecinta sastra, dan pembaca buku

 
Halo, perkenalkan saya Agung Setiawan.
Saya Software Engineer di BukaLapak.
Simak pemikian saya soal dunia Software Engineering via Twitter di @agungsetiawanmu dan facebook
Blog ini saya update seminggu sekali jadi sering-sering saja mampir
Mau belajar Vim bareng saya?
Belajar ngoding dari nol menggunakan PHP

Leave a Reply

Your email address will not be published. Required fields are marked *