Regisztráció

x
Regisztráció
A regisztráció első lépéseként add meg az e-mail címedet!

Npeti blogja

peti.net

Ugyan mára ide egy MW2-s élmény beszámolót terveztem, de mivel a h1n1 vagy valamelyik rokona vendégeskedik a fejembe így most elöbb jön a C# 4.0ás újdonságok folytatása jövő héten meg jön az MW2.

Az elöző cikkhez képest eszközöltem pár változást, így például a kód részleteket immár nem képként szúrom be hanem szövegként, szóval ha valakit zavar, hogy itt a kódrészletek csak feketén jelennek meg akkor annak ajánlom, a "liveos"tárhelyemen elolvasni a cikket.



Legutóbb ott hagytuk abba, hogy szeretnénk egy olyan opcionális paraméternek értéket adni, amit megelőz több másik paraméter is. Ez esetben tehetjük azt, hogy minden előtte álló paraméternek értékül adjuk az alapértelmezett értékét újra, vagy használhatjuk az ún. nevesített paramétereket.

Szintakszis
A nevesített paraméterek használata ugyan olyan egyszerű, mint az opcionális paramétereké, csak amíg utóbbiakat a függvény deklarálásánál használjuk, utóbbiaknak a függvény meghívásakor van szerepük. Nézzük a már jól ismert SayHello() függvényünket:

public static void SayHello(string a = "Hello", string b = "World", string c = "!")
{
Console.WriteLine("{0} {1}{2}", a,b,c);
}


Van 3 db bemenő opcionális paramétere és mi csak az utolsónak szeretnénk, az alapértelmezettől eltérő értéket adni. A dolog a következőképpen fest:

static void Main(string[] args)
{
SayHello(c:"?");
}


A kimenet a következő lesz:

Hello World?

A szintakszis pofon egyszerű, nem kell mást tennünk, mint a kívánt paraméter neve után kettősponttal elválasztva megadni a kívánt értéket. Persze nem csak opcionális paramétereknél használhatjuk ezt a funkciót:

public static int Add(int x, int y)
{
return x + y;
}

static void Main(string[] args)
{
Console.WriteLine(Add(y: 3, x: 2));
}


Eredmény:
5

Bevallom a fenti példa elégé értelmetlen, viszont hasznos tud lenni a dolog abban az esetben, ha a paramétereknek nem a paraméterlistába elfoglalt helyük szerint szeretnénk értéket adni (Ez igen hasznos tud lenni egy hosszabb paraméterlista esetén.).

Egy apró megjegyzés
Ezek után alighanem nyilvánvaló, hogy mire kell odafigyelni ha nevesített paramétereket használunk. Amennyiben a függvény deklarációban átnevezzük az egyik paramétert, akkor hibát fogunk kapni. A SayHello() függvényben nevezzük át a c paramétert d-re:

public static void SayHello(string a = "Hello", string b = "World", string d = "!")

De a függvény meghívásánál továbbra is c szerepel, mint a változó neve, így a következő hibát fogjuk kapni, ha megpróbáljuk lefordítani:



Figyeljünk oda, hogy olyan paramétert amit "nevesítve" is használunk lehetőleg már ne nevezünk a későbbiekben.

Konklúzió
A nevesített paraméterek egy újabb olyan funkció mely kényelmesebbé teheti a C# programozók életét, de biztosra kell mennünk, hogy nem nevezzük át a paramétereinket mert esetleg később gondjaik lehetnek mindazoknak akik a függvényeinket használják.

Linkek:
B#.NET Blog C# 4.0 Feature Focus - Part 2 - Named parameters

A példa project

------------------------------------------------------------

Legközelebb megnézzük a C# 4.0 leginkább megosztó újítását a dinamikus típusokat. De még előtte felkerül még egy héten egy komolyabb interopos demo ami az opcionális és nevesített paraméterek használatát mutatja be.
Hozzászólások
09. nov 20. #4
Npeti

“értem én. csak leszarom.”
Majd talán a 6ban. Bár ha jól tudom a c++ban sincsenek, igazából eddig nem is nagyon hallotam ezekről, se c#ban nem voltak eddig se c++ban így kimaradtak. De tényleg egy nagyon jó kis újitás.

09. nov 20. #3
elvis

“You mean coitus?”
php-ben vártam nagyon a nevesített paramétereket, de nem jöttek...

09. nov 13. #2
Npeti

“értem én. csak leszarom.”
Ráadásul már a 2. a googletől igen rövid időn belül.

09. nov 13. #1
HZeXtravaganza

“Lifesaver”
/offtopic on
Google programozási nyelv: Go
/offtopic off

Npeti

23 éves fiú Velence / Fejér
944 napja regisztrált

“értem én. csak leszarom.”
Archívum
+ 2010. február (1 bejegyzés)
+ 2009. december (2 bejegyzés)
+ 2009. november (2 bejegyzés)
+ 2009. október (4 bejegyzés)
Kedvenc blogjaid
Ahhoz, hogy kedvenc blogjaid lehessenek regisztrálnod kell!
Kiemet bloggerek

FlashFan

Minden napra egy flash játék! [18+] Europe Map Strip (0)

Deadpool

Deadpool's Blog Cabal Online (2)

elvis

Developer's diary Szalagszakadás (2)

liquid

Agymenés, videojátékokról Vissza az egész (4)



© Copyright - 365Media Kft. - Minden jog fenntartva! Az oldalon publikált
minden tartalom a 365Media Kft. tulajdona, felhasználása, csak a
365Media Kft. írásos engedélyével lehetséges!