Operator Null Propagation pada C# 6

C# 6 telah hadir berbarengan dengan rilis Visual Studio 2015 dan tentunya terdapat fitur baru pada C# yang membuat developer merasa diuntungkan. Dari beberapa fitur baru yang ada pada C# 6 saya akan membahas salah satu fitur yang menarik yaitu operator null propagation.

C#

Bohong rasanya kalau kita tidak pernah terkena exception yang satu ini.

System.NullReferenceException: Object reference not set to an instance of an object.

Hayoo..ngaku aja kalau pernah kena null exception :p

Exception ini kan terjadi karena kita coba mengakses field ataupun method pada object yang tidak diinstansiasi. Kalau pemula biasanya karena lupa belum menggunakan operator new untuk membuat objek baru sedangkan untuk yang tingkat di atasnya biasanya pun masih bisa kena exception ini karena tidak mengecek apakah objek yang bersangkutan null atau tidak.

Misal ada kodingan di atas, akan kena null exception kalau :

1. music null
2. music tidak null tetapi singer null

Agar tidak kena exception maka yang dilakukan adalah menggunakan operator if untuk mengecek keadaan terlebih dahulu.

Dengan hadirnya C# 6 maka ada cara yang lebih enak mengecek ke-null-an suatu objek.

Dengan menggunakan operator null propagation yang berupa tanda tanya (?) maka kita tidak akan terkena exception dan nilai yang dikembalikan adalah berupa null.

Contoh di bawah akan mengeset nilai untuk title dan singer jika bernilai null

Contoh koding yang lengkap bisa dilihat di sini dan silahkan bermain-main dengan contoh tersebut.

Semoga tulisan singkat ini bermanfaat.

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 *