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.
31030
Äänestä

Muut lukivat myös

Vastaukset 3

Vanhimmat

Taitaa olla väärä palsta.

Äänestä

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 ();

Äänestä

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.

Äänestä

Kommentoi aloitusta


dotnet kirjoitti:

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.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu