NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
Libor Šimo (libcosenior):22.11.2015 7:27

Povedzme že mám triedu Surovina, ktorá má parametre: Meno, JM a Balenie.

V obslužnej triede mám tieto metódy:

public string NastavNazovSuroviny(Surovina surovina)
{
    return surovina.Meno;
}

public string NastavJednotkuMnozstva(Surovina surovina)
{
    return surovina.Jm;
}

public string NastavMnozstvoBalenia(Surovina surovina)
{
    return surovina.Balenie;
}

Chcel by som z nich spraviť jednu, ale toto:

public string NastavItemSuroviny(Surovina surovina, string Item)
{
    return surovina.Item;
}

nefunguje.
Je mi jasné, že Item nie je string, ale názov premennej, lenže neviem, ako tam zadať ten parameter.

Odpovědět
22.11.2015 7:27
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
ostrozan
Tvůrce
Avatar
ostrozan:22.11.2015 10:07

To je špatně,

na toto použij vlastnosti

class Surovina
{
public string Meno(get;set);
public int Jm(get;set);
public string Balenie(get;set);

public Surovina()
{
}
}

Surovina maslo= new Surovina();

maslo.Meno="pomazankove"
maslo.Jm = 2;
maslo.Balenie = "velke";

jinak to na co ses ptal bz řešil** switch**

public string NastavItemSuroviny(Surovina surovina, string Item)
{
    switch(Item)
{
case "Meno":  return surovina.Meno; break;
case "Jm":  return surovina.Jm; break;
case "Balenie":  return surovina.Balenie; break;
}
}
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
22.11.2015 10:07
Avatar
Patrik Valkovič:22.11.2015 10:09

Lze to vyřešit, ale musíš použít reflexy. Podle příspěvku nepředpokládám, že bys ji měl zmáknutou ;)

Nahoru Odpovědět
22.11.2015 10:09
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Milan Křepelka
Tvůrce
Avatar
Milan Křepelka:22.11.2015 10:47

Mezi slovem Nastav a příkazem return je dosti zřejmý rozpor. Jinak celá ta konstrukce je dosti podivná. Docela by mě zajímal důvod dělat to takhle... ehm...podivně.

 
Nahoru Odpovědět
22.11.2015 10:47
Avatar
Odpovídá na Milan Křepelka
Libor Šimo (libcosenior):22.11.2015 10:53

OK, malo by tam byt VratItemSuroviny().

Nahoru Odpovědět
22.11.2015 10:53
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovídá na Patrik Valkovič
Libor Šimo (libcosenior):22.11.2015 10:59

Vôbec neviem čo to je.

Nahoru Odpovědět
22.11.2015 10:59
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Milan Křepelka
Tvůrce
Avatar
Odpovídá na ostrozan
Milan Křepelka:22.11.2015 11:01

Pozor ... string based programming. Jestli už to dělat takhle, tak přes enum. Ale i tak bych to pavažoval za něco nepěkného.
Na surovinu se přidá atribut, na což se v takovýhlech konstrukcích zapomene a při nejbližší příležitosti to nebude dělat to co má.

 
Nahoru Odpovědět
22.11.2015 11:01
Avatar
Milan Křepelka
Tvůrce
Avatar
Odpovídá na Libor Šimo (libcosenior)
Milan Křepelka:22.11.2015 11:05

Potom je na čase se s tím seznámit. Nicméně setovat properties přes reflexi je poměrně dosti přímý způsob jak si zpomalit program.

 
Nahoru Odpovědět
22.11.2015 11:05
Avatar
Odpovídá na ostrozan
Libor Šimo (libcosenior):22.11.2015 11:23

Len jedna maličkosť.
Tým, že je v case return, break tam je zbytočný.

Nahoru Odpovědět
22.11.2015 11:23
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
ostrozan
Tvůrce
Avatar
Odpovídá na Libor Šimo (libcosenior)
ostrozan:22.11.2015 13:19

To je pravda - no já většinou nereturnuju přímo z case ale nastavuju nějaký "retval" , který pak returnuju na konci metody(možnost s ním pracovat ještě za switchem) a tak když píšu switch, tak tam ta breaky sázím automaticky :-)

 
Nahoru Odpovědět
22.11.2015 13:19
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 10.