- Mit tettek értünk aróredmondiak? Semmit!
- Visual Studio 2010 Relase Candidate!
- Mit?
- VS2010 RC.
- Ó, igen, ezt ők adták, ez igaz.
- És variancia-támogatást a nyelvbe.
- Igen, relase candidate-et, és variancia támogatást, igen, de ezektől eltekintve...
- Az AppFabricot!
- Jól van, de eltekintve a release candide-től, a variancia-támogatástól, az AppFabrictól, a dinamikus nyelvek támogatásától, az újraírt workflowtól eltekintve... mit adtak nekünk aróredmondiak?
Hát a Tuple-t.
A tuple egy olyan adatszerkezet, ami több, különböző típusú "al-elemet" fog össze. Kb. mint egy tömb, aminek mindegyik eleme más-más típusú lehet.
Képzeljük el, hogy egy metódusban vissza kell adnunk egy string-et és egy int-et. Több lehetőségünk is van, pl. string visszatérési érték + 1 out int paraméter használata, vagy egy egyszerű, "adathordozó" oszály legyártása, ami pont egy string-et és egy int-et tud getelni-setelni. Lehetőleg inkább csak getelni, setelni csak a létrehozásakor. Na a Tuple pont ez utóbbit tudja.
A Tuple egy generikus adatszerkezet, ami a generikus típusparamétereinek megfelelő adatokat tudja tárolni. Az adattagokat csak létrehozáskor lehet beállítani, a tuple példány életciklusában később már csak getelni lehet az tuple által biztosított Item1, Item2, Itemn propertyken keresztül. Mivel ez legalább olyan érthetetlen lett, mint a többi magyarázatom, jöjjön a példa:
var tuple = new Tuple<string, string, int>("otperc", ".net", 42); string s1 = tuple.Item1; string s2 = tuple.Item2; int i = tuple.Item3;
Még elegánsabb, ha a Tuple.Create() statikus metódussal gyártjuk le a Tuple példányunkat, ekkor ugyanis a fordító képes a generikus típusparamétereket a metódushívás paramétereinek típusából kiinferálni. Magyarul, nem kell kiírni a kacsacsőrös rész:
var tuple = Tuple.Create("otperc", ".net", 42);
Ennyi. Nem rakétatudomány, de hasznos kis tool.

0 megjegyzés:
Megjegyzés küldése