Posted at :
Sep/22/2016
Pada artikel kali ini kita akan membahas beberapa fitur baru di bahasa C# 6 yaitu penggunaan using static directive dan string interpolation. Artikel sebelumnya juga membahas beberapa fitur baru lainnya di C# 6 yang dapat dilihat di link berikut ini Auto Property Initializers dan Dictionaty Initializers. Tentunya masih terdapat beberapa fitur baru lainnya yang akan dibahas pada kesempatan artikel selanjutnya.
Using Static Directive
Untuk mengakses static member sebuah class atau member sebuah enumerasi di c# versi sebelumnya harus dilakukan dengan menuliskannya secara penuh dengan namespace atau nama class nya, contohnya seperti prosedur WriteLine yang terdapat didalam namespace System.Console, fungsi Sin yang terdapat di dalam System.Math, Red yang terdapat di dalam System.Console.Color. Dengan fitur baru maka hal tersebut tidak harus lagi dilakukan, sehingga penulisannya lebih singkat dan dapat lebih cepat dalam mengaksesnya.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static System.Console;
using static System.Math;
using static System.ConsoleColor;
Perhatikan perbedaan penggunaan using diatas dimana beberapa namespace menggunakan tambahan directive static.
class UsingStaticDirective
{
static public void TestUsingStatic()
{
var color1 = Yellow;
ForegroundColor = color1;
var sinResult = Sin(30.5);
WriteLine(sinResult);
ReadLine();
}
}
Variabel color1 diisi dengan nilai dari member enumerasi System.Console.Color, dan variabel sinResult diisi dari member static class System.Math, sedangkan prosedur ReadLine dan WriteLine merupakan static member dari System.Console (tentunya kita sering menuliskannya dengan Console.WriteLine() di C# versi sebelumnya bukan?). Hasil testnya dapat dilihat pada gambar dibawah ini:

String Interpolation
Sering kali kita melakukan konkatenasi string dengan menggunakan prosedur String.Format dimana string-string literal yang akan di gabungkan dengan nilai yang diambil dari variabel ditempatkan dalam placeholder “{}”. Didalam placeholder tersebut dituliskan indeks-indeks yang nantinya nilai tersebut akan diganti dengan nilai dari variabel atau fungsi yang bersesuaian urutannya dengan indeks tersebut. Kadang kala terjadi kesalahan dalam penulisan indeksnya sehingga outputnya tidak sesuai dengan yang dimaksud. Dengan fitur baru berupa string interpolation kita tidak perlu lagi untuk menuliskan indeks yang ditempatkan didalam placeholder “{}”. Dan lebih jauh lagi dengan fitur tersebut juga dapat dituliskan sebuah ekspresi yang menghasilkan nilai sesuai dengan kondisi tertentu didalam string interpolasinya.
class OrderItem
{
public string Item { get; set; }
public int Qty { get; set; }
}
static void Main(string[] args)
{
var order1 = new OrderItem { Item = "Item-1", Qty = 5 };
var output = $"{order1.Item} with {order1.Qty} unit";
WriteLine(output);
output = $"{order1.Item} with {order1.Qty} unit{(order1.Qty > 1 ? "s" : "")}";
WriteLine(output);
ReadLine();
}
String interpolation dilakukan dengan menambahkan tanda “$” di awal sebuah string. Placeholder “{}” tetap digunakan, namun kali ini tidak lagi menggunakan indeks didalamnya. Dari kode diatas juga dapat dilihat bahwa ekspresi pun dapat dituliskan didalam string interpolation (perhatikan variabel output yang diubah nilainya).

Pada gambar diatas dapat kita lihat bahwa intellisense juga akan muncul pada saat pengetikan kode untuk mengakses variabel didalam string interpolasi tersebut. Hasilnya dapati dilihat pada gambar dibawah ini.

Selamat mencoba 