Visual Studio 2010 i C# 4.0 I DIO


Uvod

VS2010B1

Još se nisu stišali utisci izlaska Visual Studia 2008 i C# 3.0, a Microsoft je još krajem prošle godine najavio svoju novu verziju 2010, kao i novine koje trebaju doći. O nekim novinama već sam pisao. Dio vijesti o VS 2010:

· ParallelFx biblioteka za paralelno programiranje pod .NET jezicima. Ovo proširenje .NET-a je ugledalo svjetlo dana još u decembru 2007 godine lansiranjemm prvog CTP-a ove biblioteke.

· Druga vijest koja je obznanjena da će novi .NET programski jezik F# biti uključen u novi Visual Studio 2010.

· Naravno, pored dobrih vijesti Microsoft je obznanio da napušta razvijanje LINQ to SQL tehnologije, te preporučuje developerima da koriste i prelaze na Entity Framework koji bi u novoj verziji bio “poboljšan“.

U decembru prošle godine na PDC-u, kojeg sam naknadno pregledao najupečatljiviju prezentaciju imao je Andreas Hejlsberg kreator C#. Kao jednu od najboljih prezentacija PDC-a 2008, pored navedene imao je Luca Bolognese sa prezentacijom novog funkcionalnog .NET programskog jezika F#. Preporučujem da je pogledate. Na istoj konferenciji lansirana je i CTP verzija Visual Studia 2010, a instalacija je bila „zalijepljena“ kao virtualna mašina. Naravno zbog samog statusa verzije.

Sredinom maja 2009 izašla je i prva beta verzija Visual Studia 2010, gdje se može skinuti i koristiti u testne i edukacijske svrhe sa ovog linka. Sa prvom betom stekli su se uvjeti da se u punom kapacitetu okušaju sve novine proizvoda.

Pored ParallelFX nove biblioteke odnosno proširenja .NET frameworka, vrlo interesantne stvari dogodile su se u samom C# programskom jeziku koji postaje i ostaje jedan od najpopularnijih programskih jezika. C# 4.0 proširen je u nekoliko smjerova:

1. Imenski i opcioni parametri (Named and Optional parameters)

2. Dinamička podrška

3. Varijance

4. COM interoperabilnost

Opcioni ili podrazumijevani parametri metoda

Developeri koji su prešli sa C++ na C#, ponekad su bili frustrirani nemogućnošću korištenja podrazumijevanih argumenta u funkcijama. Npr:

clip_image002

Ovo je dovodilo do dodatnih implementacija metoda koje su trebale preklapati isti naziv, a samim tim i do težeg održavanja koda. Konačno, ovo proširenje dolazi sa C# 4.0. Npr. posmatrajmo sljedeći kod koji deklariše jednu metodu koja se može pozvati na tri potpuno različita načina. Zadnji 4-ti poziv metode nije dozvoljen jer se nije ispoštovao princip poretka parametara u metodi.

clip_image004

Imenski parametri

U prethodnom primjeru vidjeli smo da opcioni parametri ne mogu izgubiti poredak tj. ne smijemo tako lako ispuštati opcioni parametar bez obzira da li on ima podrazumijevanu vrijednost. Puno je slučajeva kada u kojem bi došli u zabludu ako bi zadnji poziv prethodnog primjera bio moguć. Npr. Kada bi metoda Metoda imala podrazumijevane parametre istog tipa ili tipa object vrlo bi teško bilo za samog developera snalaziti se u takvoj zbrci, a da se ne priča o kompajleru.

Da bi se ipak mogao ispustiti podrazumijevani parametar odnosno pozivati metoda na način da se nekoliko podrazumijevanih parametara ispusti, a poslije toga neki drugi poslije njih parametar definiše (kako je prikazano u zanjem pozivu gornjeg primjera) potrebno je koristiti proširenje Imenskih parametara. Naime, ako želimo neke parametre ispustiti, da bi onda ostale dodali potrebno je koristiti sam naziv tog parametra u samoj deklaraciji metode. To znači da prethodni primjer možemo pisati na sljedeći način:

clip_image006

About Bahrudin Hrnjica

PhD in Mechanical Engineering, Microsoft MVP for .NET. Likes .NET, Math, Mechanical Engineering, Evolutionary Algorithms, Blogging.

Posted on 19/07/2009, in .NET, C# and tagged , , . Bookmark the permalink. Leave a comment.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s