C#:n ominaisuuksia: Tuple

C#:n ominaisuuksia: Tuple

C# versio 7 on ollut nyt tuotannossa pari vuotta ja näyttää nyt hieman erilaiselta, kun kokemusta on kertynyt. Ihan kaikkia uusia piirteitä en ole itsekkään vielä ottanut kunnolla käyttöön, joten seuraavassa projektissa aion vaikka puoliväkisin käyttää niitä. Tosiasiahan on, että koodausta ei opi kuin koodaamalla ja sama pätee kielen uusiin piirteisiin. Käyttämällä tulee paras tuntuma mihin ja miten piirteitä kannattaa käyttää.

Tietorakenne Tuple

Kerrataanpas erästä uutta ominaisuutta nimeltä Tuple. Tuple on ollut jo aikaisemminkin olemassa mutta vasta tämä versio on niin käyttökelpoinen, että siitä voi olla jotain hyötyä ohjelmointimielessä. Ja mikä sitten on Tuple? Se on kevyt luokan (tai struktuurin) kaltainen tietorakenne, jossa on useita tyypitettyjä kenttiä mutta ei metodeja, eikä kenttiin saa eheystarkistuksia.

Tuple sopii hyvin luokan sisällä tiedon siirtämiseen ja tallentamiseen. Se on kevyt ja helppokäyttöinen, mutta vaatii version 4.7.2 tai sitten Tuple-toiminnallisuus pitää ottaa käyttöön NuGet-paketilla ”System.ValueTuple”.

Koodiesimerkki:

void TupleTesti()

{

string enimi;

string snimi;

string asiakas;

var nimi = haeNimetTuple(123);

haeNimetOut(123, out enimi, out snimi);

asiakas = $”{nimi.sukunimi}, {nimi.etunimi};

asiakas = $”{snimi}, {enimi};

}

 

(string etunimi, string sukunimi) haeNimetTuple(int asiakasnumero)

{

if (asiakasnumero == 313)

{

return (”Aku”, ”Ankka”);

}

return (null, null);

}

 

void haeNimetOut(int asiakasnumero, out string etunimi, out string sukunimi)

{

etunimi = sukunimi = null;

if (asiakasnumero == 313)

{

etunimi = ”Aku”;

sukunimi = ”Ankka”;

}

}

 

Esimerkissä metodit palauttavat kaksi merkkijonoa (etu- ja sukunimi). Useampi kuin yhden arvon palauttaminen onnistuu out-parametrilla, joka on ollut kielessä mukana jo pitkään. Sama voidaan tehdä myös Tuple-rakenteella, joka on useimmissa tapauksissa kätevämpi kuin out-parametri, varsinkin jos palautettavia arvoja on monta. Tuple voidaan määritellä, vaikka metodin paluuarvona tai missä tahansa muuttujan esittelyssä. Yllä olevassa esimerkissä paluuarvona on Tuple jossa on kaksi string-kenttää joiden nimet ovat etunimi ja sukunimi. Tuplen kenttien käyttäminen tapahtuu samoin kuin luokan tai struktuurin kenttien käsittely ja Tuplella on valmiina kohtuullisen hyvin toimiva ToString() -metodi.

C#-sovellukset pystytään tekemään ilman Tuple-käsitettä, mutta joissakin tilanteissa se on varmasti kätevämpi ja kevyempi käyttää kuin muut tavat.

Tutustu c#-ja .NET-framework-ohjelmointiin »

 

Tutustu C# -koulutuksiin

C# ja .NET Framework -ohjelmointi

C# -ohjelmoinnin perusteet

Muut C# -ohjelmoinnin koulutukset

 

Lue lisää aiheesta

C# versio 7 – milloin hyvä ohjelmointikieli on riittävän hyvä?