Oon tapellu täs tämmösen kanssa kun en millään saa keksittyä, miten saan string muodossa muuttujien nimet luokassa talteen. Toinen ongelma on myös tietyn tyyppisen muuttujan löytymisessä, kun stringiä, doublea ja stringiä pitäisi saada jossain muodossa muuttujiin... aapuuva?
using System; namespace OlioohjelmoinninJatko { // Sinun koodi tulee tähän class Ohjelma { static void Main() { 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); Console.WriteLine(); Kokoelma kokoelma2 = new Kokoelma(2); kokoelma2["kokonaisluku"] = 123; kokoelma2["desimaaliluku"] = 456.78; kokoelma2["teksti"] = "Hei maailma!"; } } }
Lisäys:
Ja esimerkkitulostuksen tulisi olla seuraava:
Lisätty kokonaisluku = 123
Lisätty desimaaliluku = 456.78
Lisätty teksti = Hei maailma!
Numeeristen arvojen summa on 579.78
Lisätty kokonaisluku = 123
Lisätty desimaaliluku = 456.78
Kokoelma on täynnä
No eikö siellä teidän ohjelmoinnin jatkokurssilla opeteta asioita? Mikä tuossa tarkalleen ottaen on ongelmana ja miten olet yrittänyt sitä ratkaista? Opiskelun tarkoitus ei ole jättää oppimatta ja pistää muut tekemään kotitehtävät.
Käytännössä kuitenkin varmaan toimisi jos teet Kokoelma nimisen luokan jonka joko periytät Dictionaryta ja ylikirjoitat luojan ja uuden avainarvon lisäämisen tarkistamaan ettei luojassa määritelty maksimitilavuus ylity ja että se tulostaa tuon "Lisätty..." tai sitten teet luokan jossa on vain nuo vaaditut toiminnaliisuudet ja joka tallentaa tiedot sisäisesti vaikka dictionaryyn.
ongelmanahan mulla on:
kokoelma2["kokonaisluku"]
noissa kohdissa toi stringin käyttö indeksinä
public class Kokoelma { public object this[string key] { get { //... } set { //... } } }
Aihe on jo aika vanha, joten et voi enää vastata siihen.