C# 3.0 New Features – Tagalized!

 

Magandang araw!

Ang blog na ito ay tungkol sa pinakabagong version ng programming language na C#, ang C# 3.0 na kasamang ilalabas ng Visual Studio.Net 2008-Codenamed Orcas.

Ipapakita ko ngayon ang ilan sa mga bagong kakayahan ng C#, at ikukumpara ito sa dating paraan ng magsusulat ng code sa C#. Ang gagamitin ko sa demo na ito ay Visual Studio Team System 2008. Walang kailangang database.

Ang mga bagong feature ng C# ay:

1. Automatic Properties

2. Implicitly Typed Variables (Type Inference)

3. Object Initializer

4. Collection Initializer

5. LinQ at Anonymous types

6. Lambda Expressions

7. Extensioin Methods

Walo lahat ito at ang unang apat lamang ang laman ng blog na ito. Ang kasunod ay ilalagay ko sa kasunod kong blog.

Automatic Properties

Noong unang panahon, sobrang tagal na ang nakalipas (Visual Studio 2003), tayo ay nagsimulang gumamit ng mga class bilang objects. At ang lumang paggamit ng class ay simple lamang. Ang mga class natin noon ay mayroong mga tinatawag na properties at ang properties na ito ay ating inilalagay sa code sa ganitong paraan:

image

Mapapansin na sumakop ng ilang linya rin ang pagdeklara natin ng property na FirstName ng ating class na tinatawag na Person (Person.cs). Madali lang itong gawin, pero kung ang ating class ay magkakaroon ng mahigit dalawampung properties, ay medyo nakakatamad na itong itype, at maari nang panggalingan ng error.

Sa C# 3.0, pinasimple na ang pagdeklara ng property ng isang class o object:

image

Pinaiksi na at pinagsama na sa iisang linya ang tinatawag na GETTER at SETTER. Pero kung may mga kinakailangan ka pang gawin sa pagitan ng iyong pag-GET o pag-SET ng property, pwede pa rin namang gamitin ang lumang paraan. Maganda rin kung tatandaan mo na ang bagong paraan na ito, ay bagong paraan lamang ng partatype ng property, walang nabago sa pag-compile ng code na ito. Ang luma at bago ay pareho lamang ng pagkaka-compile.

At iyan ang tinatawag na Automatic Properties.

 

Implicitly Typed Variables

Huwag mong isipin na ang gagamitin ko ay ang tinatawag na Variant dahil baka atakihin ka lang sa puso kung ikaw ay isang panatiko ng C#. Ang Implicit Variable Typing o Type Inferencing ay iba sa Variant. Ang variant ay isang variable na may type agad sa oras na i-declare ito pero ang implicitly typed variable ay magkakaroon lamang ng type, kapag nakita na niya kung anong variable type ang ipinapasa sa kanya. Dito ngayon papasok ang bagong keyword ng C#, ang var.

Tignan ang code na ito:

image

Ginamit ko dito ang keyword na var para magdeklara ng object na ang pangalan ay PersonKo.

 

var PersonKo = new Person();

 

Habang tinatayp ang salitang var PersonKo = new hindi pa alam ng compiler ang uri ng variable/object na aking dinedeklara. Pero nang naisulat na ang pangalan ng object na Person(), alam agad ng compiler na ang variable na PersonKo ay uri ng object na Person(). Bilang patunay, kung hindi ka naniniwala, kapag tinayp ko sa kasunod na linya ang variable na PersonKo at pinindot ang tuldok, makikitang alam ng compiler na ang variable na PersonKo ay isang tinatawag na Strongly Typed Variable na type ay Person at makikita ang mga properties na inilagay natin, ang FirstName at LastName. Astig diba?

PERO! May limitasyon din naman ang var keyword. Para magawa nitong alamin ang type ng variable na susndin nya, kailangang nasa iisang linya ang var keyword at ang pagkukuhanan nya ng datatype.

Tignan pa ang isa pang halimbawa ng paggamit ng var keyword.

image

Kahit pangit tignan, idineklara ko ang variable na myString sa pamamagitan ng paggamit ng var at pagbigay agad ng value sa kanya. Sa ganitong paraan, agad na makikita ng var keyword na string ang uri ng variable na ito. Sa kasunod na linya ay ipinapakita na kilala na agad ng compiler na ang variable na myString ay isang uri ng string at nasa kanya na ang lahat ng mga methods at functions ng isang string variable. Gusto ko lang linawin ulit, na ang bagong estilong ito ng pagdeklara ng variable, ay nagreresulta pa rin ng mga strongly typed variables.

At iyan ang tinatawag na Implicitly Typed Variable.

Object Initializer

Hindi lang ang variables ang madali nang i-initialize ngayon sa C# 3.0. Pati ang mga objects (katulad ng sample nating Person) ay madali na ring i-initialize.

Tignan ang bagong paraan ng pag-initialize at pagbigay ng value sa paraan ng C# 3.0

 

image

Maari na ngayong idugtong sa linya, ang pagbigay ng mga values sa ating inihahandang object na PersonKo. Mapapansin sa larawan, na ang mga properties na FirstName at LastName ay kasama na sa intellisense ng ating compiler.

Paano ito mapapakinabangan?

image

Pinaandar ko ang maliit na demo program na ito at makikita sa aking browser ang resulta ng ating code.

Ginawa ng compiler ang dating dapat sana ay tatlong linya ng code, sa iisang linya lamang. Imbes na magdeklara ng object, lagyan ito ng values, at pagkaraan ay ilabas sa browser ang values sa kanya-kanyang mga linya, sa C#3.0, isang linya na lamang ang kakailanganin.

Astig din ang pagdeklara ng objects sa C# ano?

 

Collection Initializer

Ngayon naman, ay ipapakita natin ang bagong paraan ng pag-deklara ng isang collection.

Sa C#3.0, halos magkahwig lang ang pagdeklara ng isang collection, sa pagdeklara ng isang object. Magdeklara tayo ng isang Array:

image

Alam kong mayroong iba na hindi makapaniwala sa kanilang nababas pero oo, ang paraang ito ng pagdeklara ng isang array ay pwede noong 2005 pa. Pwede rin itong gamitin sa pagdeklara ng isang Generic List.

image

Pansinin na nagdadag ako ng using System.Collections.Generic sa itaas dahil nakalimutan ko kanina. 🙂

Siguro ay masasabi mong hindi naman ito kasing astig ng inaasahan mo at parang hindi naman nito mapapadali ng husto ang ating pagsusulat ng code. Pero paano naman kung isang collection na ang ating idedeklara?

image

Ayan, nagdeklara ako ng isang collection (isang List na ang type ay Person) na tinawag kong myPeople at agad kong nilagyan ito ng values sa pamamagitan ng pag-gawa ng objects sa paraang ipinakita ko kanina.

Idinaan ko sa isang simpleng foreach na loop ang ating collection at:

image

 

At iyan ang tinatawag ng Collection Initializer.

Advertisements
This entry was posted in Uncategorized. Bookmark the permalink.

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