Mystinen tietotyyppi

Koulussa annettiin C# kurssilla joku tosi mystinen tehtävä. Mainissä on tälläinen koodinpätkä, ja pitää kirjoittaa luokka.

Kokoelma kokoelma = new Kokoelma(3);
kokoelma["kokonaisluku"] = 123;
kokoelma["desimaaliluku"] = 456.78;
kokoelma["teksti"] = "Hei maailma!";

double summa = (double)(int)kokoelma["kokonaisluku"] (double)kokoelma["desimaaliluku"];
Console.WriteLine("Numeeristen arvojen summa on {0}", summa);

Eihän tossa ole mitään järkeä? Eihän taulukon indeksinä voi olla string? Olisin ymmärtänyt, jos indeksin kohdalla lukisi noi samat sanat ilman hipsukoita, jolloin ne menis vakioista, mut nyt en tajuu. Yritin googlettaa, ja selvisi, että C# on dictionary, joka on vähän kuin taulukko, joka voi käyttää indeksinä stringiä, mutta kun tossa ekaan lokeroon tallennetaan int, tokassa double ja vikassa string, joten dictionarykaan ei toimi

Aiheena on nyt staattiset luokat, vakiot, hajoittimet ja indekserit.

Kiitos avusta etukäteen.
Ilmianna
Jaa

3 Vastausta



Taitaa olla väärä palsta.
Ilmianna
Jaa
Jaa-a. C#:sta en nyt niin tiedä kun sillä koskaan koodaillut, mutta PHP:ssa on vastaavanlainen ominaisuus kuten "assosiatiivinen taulukko", jossa indeksinä voi toimia myös merkkijono. Toisekseen kun en tuosta koodista näe mikä tuo "Kokoelma" on olevinaan, onko se "HashMap", missä avaimeksi on määritetty string-tietotyyppi ja alkioksi voi määrittää variantin?

Tämä ei ole C#-kieltä mutta vähän vastaavanlainen ajatuksen tasolla?

class Kokoelma : HashMap {

}

var kokoelma = new Kokoelma ();
Ilmianna
Jaa
Jos tuo oli tehtävän anto, niin taulukoita ei tarvita lainkaan. Tarkoituksena on luoda _luokka_, joka sisältöö kyseiset _ominaisuudet_. Siitä voidaan luoda olio kokoelma, joka saa kyseisey tiedot.
Ilmianna
Jaa

Vastaa alkuperäiseen viestiin

Mystinen tietotyyppi

Koulussa annettiin C# kurssilla joku tosi mystinen tehtävä. Mainissä on tälläinen koodinpätkä, ja pitää kirjoittaa luokka.

Kokoelma kokoelma = new Kokoelma(3);
kokoelma["kokonaisluku"] = 123;
kokoelma["desimaaliluku"] = 456.78;
kokoelma["teksti"] = "Hei maailma!";

double summa = (double)(int)kokoelma["kokonaisluku"] (double)kokoelma["desimaaliluku"];
Console.WriteLine("Numeeristen arvojen summa on {0}", summa);

Eihän tossa ole mitään järkeä? Eihän taulukon indeksinä voi olla string? Olisin ymmärtänyt, jos indeksin kohdalla lukisi noi samat sanat ilman hipsukoita, jolloin ne menis vakioista, mut nyt en tajuu. Yritin googlettaa, ja selvisi, että C# on dictionary, joka on vähän kuin taulukko, joka voi käyttää indeksinä stringiä, mutta kun tossa ekaan lokeroon tallennetaan int, tokassa double ja vikassa string, joten dictionarykaan ei toimi

Aiheena on nyt staattiset luokat, vakiot, hajoittimet ja indekserit.

Kiitos avusta etukäteen.

5000 merkkiä jäljellä

Peruuta