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.
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.
Taitaa olla väärä palsta.
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 ();
Tämä ei ole C#-kieltä mutta vähän vastaavanlainen ajatuksen tasolla?
class Kokoelma : HashMap
}
var kokoelma = new Kokoelma
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.
Kerro mielipiteesi