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

.NET Framework , Posted at : Sep/21/2016  
313 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 dan sampai jumpa di artikel berikutnya 


[Comments]

[Write your comment]
Name (required)
Email (required-will not published)
 
Comment

FCVD
Input code above below (Case Sensitive) :
About Me 
Rully Yulian MF
Rully Yulian Muhammad Firmansyah | Microsoft Certified Trainer | IT Trainer at Native Enterprise | IT Consultant | Software Developer | MCAD | MCPD | MOS | Bandung, West Java, Indonesia.
[Read More...]
Top Download 
Mapping Hak Akses User Pada MenuStrip Sampai Control Button : Downloaded 6083 times  
Bagaimana caranya menginstal database ketika deploying sebuah aplikasi? : Downloaded 4689 times  
Simple Voice Engine Application With Sound Player Class... : Downloaded 3554 times  
Change Group,Sort Order, Filtering By Date in Crystal Reports : Downloaded 3324 times  
WinForms DataGrid Paging With SqlDataAdapter : Downloaded 2706 times  
Links 
Certifications 
MOS 2007
MCT
MCPD
MCTS
MCAD.NET
ASP.NET Brainbench
Native Enterprise 
Follow Me 
Facebook   LinkedIn   Twitter
Syndication 
Hosted By 
Native Enterprise News 
© Copyright 2006-2016   Rully Yulian MF   All rights reserved.