[ nenadnesta @ 10.06.2011. 10:22 ] @
evo ovako,
napravio sam klasu HappyBirthday,
u njoj myProperty,
i metodu getMessage.

Code (csharp):

class HappyBirthday
    {
        private string birthdayMessage;

        public string myProperty
        {
            get { return birthdayMessage; }
            set { birthdayMessage = getMessage(false);}
        }

        public string getMessage(bool haveParty)
        {
            string theMessage;
            if (haveParty == true)
            {
                theMessage = "Enjoy your party!";
            }
            else
                theMessage = "Sory-no party for you !";

            return theMessage;

        }
    }
 


u klik dogadjaju za button1 kontrolu dodao sam kod:

Code (csharp):

 private void button1_Click(object sender, EventArgs e)
        {
            string poruka;
            HappyBirthday hb = new HappyBirthday();
            hb.myProperty = true.ToString();
            poruka = hb.myProperty;
            MessageBox.Show(poruka);

        }
 


ovaj kod radi, ali bez obzira da li napisao
hb.myProperty = true.ToString(); ili
hb.myProperty = false.ToString();

on prikazuje u messageboxu:
Sory-no party for you !

to je verovatno zato sto u set delu property-ja pise:
set { birthdayMessage = getMessage(false);}

sta treba da se promeni u kodu da bi u button1_click dogadjau mogao da menjam vrednost property-ja
kako bi mi u zavisnosti od toga da li postavim vrednost na true ili false bile prikazane razlicite poruke u
message box-u ?


[Ovu poruku je menjao Shadowed dana 10.06.2011. u 11:44 GMT+1]
[ Shadowed @ 10.06.2011. 10:53 ] @
Upravo. Posto uvek pozivas GetMessage sa false, nebitno je sta zadajes kao vrednost property-a, uvek dobijas isto. Mozda je najbolja varijanta za to ovako nesto:

Code (csharp):

class HappyBirthday
{
    private bool _HaveParty;
    public bool HaveParty
    {
        get { return _HaveParty; }
        set { _HaveParty = value; }
    }

    public string myProperty
    {
        get { return GetMessage(_HaveParty); }
    }
}
 


S' tim da mozes HaveParty napraviti u skracenom obliku: public bool HaveParty { get; set; } bez _HaveParty.

Onda ti button_click izgleda ovako:
Code (csharp):

private void button1_Click(object sender, EventArgs e)
{
    string poruka;
    HappyBirthday hb = new HappyBirthday();
    hb.HaveParty = true;
    poruka = hb.myProperty;
    MessageBox.Show(poruka);
}
[ nenadnesta @ 10.06.2011. 12:41 ] @
a ja sam sve vreme pokusavao da to nekako napravim sa jednim Property-em,
pa mi nije uspevalo,
hvala, koristan odgovor!
[ Shadowed @ 10.06.2011. 13:14 ] @
Mozes sa jednim ali bi samo komplikovao i bilo bi teze za upotrebu tamo gde koristis klasu.