What’s New in C# 6-Auto Property Initializers and Dictionary Initializers

Posted at : Sep/21/2016
628 Views | 0 Comments

Pada kesempatan kali ini saya akan membahas dua fitur baru dari sisi bahasa untuk bahasa C# 6.0 yaitu Auto Property Initializers dan Dictionary Initializers. Microsoft telah menambahkan beberapa fitur baru di C# 6.0 yang dapat meningkatkan produktivitas developer dalam menuliskan kode program.

Auto Property Initializers

Pada C# versi sebelumnya kita harus membuat terlebih dahulu private field untuk digunakan sebagai nilai default terhadap sebuah properti. Berikut ini adalah contoh penggunaannya di C# sebelum versi 6:

class OldStyleClass
{
    private Guid id = Guid.NewGuid();
    private DateTime orderDate = DateTime.Now;

    public Guid ID
    {
        get { return id; }
    }

    public DateTime OrderDate
    {
        get { return orderDate; }
        set { orderDate = value; }
    }
}

 

static void Main(string[] args)
{
    var cls1 = new OldStyleClass();
    Console.WriteLine("ID: {0} {1}Order Date: {2}",
        cls1.ID, Environment.NewLine, cls1.OrderDate);
    Console.ReadLine();
}
 

Dengan adanya fitur baru di C# 6 penulisan class OldStyleClass di atas dapat dipersingkat dengan cara seperti dibawah ini:

class NewStyleClass
{
    public Guid ID { get; } = Guid.NewGuid();
    public DateTime OrderDate { get; set; } = DateTime.Now;
}

Seperti halnya dengan read only variabel bahwa read only property juga dapat diberikan nilai inisialisasinya di constructor. Hal tersebut merupakan fitur baru di C# 6. Perhatikan penambahan read only properti Quantity yang diberikan nilai inisialnya di constructor:

class NewStyleClass
{
    public Guid ID { get; } = Guid.NewGuid();
    public DateTime OrderDate { get; set; } = DateTime.Now;

    public int Quantity { get; }

    public NewStyleClass()
    {
        Quantity = 1;
    }
}

Apabila hal tersebut diatas dilakukan di C# versi sebelumnya maka akan menimbulkan error seperti pada gambar dibawah ini:

 

Dictionary Initializers

Untuk memberikan nilai pada sebuah dictionary pada saat di deklarasikan kita biasa melakukannya dengan cara seperti berikut ini:

static void SetOldStyleDictionaryValue()
{
    var dict1 = new Dictionary<string, NewStyleClass>
    {
        { "item1", new NewStyleClass() },
        { "item2", new NewStyleClass() }
    };

    foreach(var item in dict1)
    {
        Console.WriteLine("item: {0}, {1} {2}", 
            item.Key, item.Value.ID, item.Value.OrderDate);
    }
    Console.ReadLine();
}

 

Dengan adanya fitur baru di C# 6 penulisan di atas dapat dipersingkat dengan cara seperti dibawah ini:

static void SetNewStyleDictionaryValue()
{
    var dict1 = new Dictionary<string, NewStyleClass>
    {
        ["item1"] = new NewStyleClass(),
        ["item2"] = new NewStyleClass()
    };

    foreach (var item in dict1)
    {
        Console.WriteLine("item: {0}, {1} {2}",
            item.Key, item.Value.ID, item.Value.OrderDate);
    }
    Console.ReadLine();
}

Jika kita melihat kode msil melalui ildasm tools yang dihasilkan oleh kedua teknik dictionary tersebut memiliki hasil berbeda satu sama lain pada saat menambahkan item ke dalam dictionary nya. Teknik lama menggunakan metode Add, sedangkan teknik baru menggunakan metode set_item.

Selamat mencoba.


[Comments]


[Write your comment]

Name (required)

Email (required-will not published)

 
Comment
VDHL
Input code above below (Case Sensitive) :

ABOUT ME

Rully Yulian MF
Rully Yulian Muhammad Firmansyah | Founder & IT Trainer Native Enterprise | MCT (2008-2019) | MVP (2009-2016) | Xamarin Certified Professional | MTA | MCAD | MCPD | MOS | Bandung, West Java, Indonesia.

[Read More...]

TOP DOWNLOAD

Mapping Hak Akses User Pada MenuStrip Sampai Control Button
downloaded 6918 times

Bagaimana caranya menginstal database ketika deploying sebuah aplikasi?
downloaded 4874 times

Simple Voice Engine Application With Sound Player Class...
downloaded 4012 times

Change Group,Sort Order, Filtering By Date in Crystal Reports
downloaded 3455 times

WinForms DataGrid Paging With SqlDataAdapter
downloaded 2869 times


LINKS

CERTIFICATIONS

Xamarin Certified
MOS 2007
MCT
MCPD
MCTS
MCAD.NET
ASP.NET Brainbench

NATIVE ENTERPRISE

Native Enterprise - IT Training

FOLLOW ME

Youtube  Facebook  Instagram  LinkedIn   Twitter

RSS


HOSTED BY

www.erudeye.net

NATIVE ENTERPRISE NEWS

© Copyright 2006 - 2021   Rully Yulian MF   All rights reserved.