Avatar billede lasserasch Juniormester
06. juni 2007 - 14:45 Der er 4 kommentarer og
1 løsning

Event for når String eller Int32 variabel skifter value. Hvordan?

Hejsa.

Hurtigt spørgsmål.

Kan man lave noget kode, som tjekker på ændringer i værdien for en Int eller String variabel og for den sags skyld også alle andre typer variabler.

Alt noget ala :

Int32 I = 0;
I.OnValueChange += new IntClosingEventHandler(IntValueChanged);

Der findes jo ikke lige nogen umiddelbar tilgængelig måde til at tjekke for ændringer i variabler vel? Eller???

Håber i forstår spørgsmålet.

/Lasse
Avatar billede erikjacobsen Ekspert
06. juni 2007 - 14:54 #1
Put det i en klasse med get/set-metoder, og lav dit eget event i set
Avatar billede lasserasch Juniormester
06. juni 2007 - 15:06 #2
Kan du ikke give et eksempel? Ved ikke lige hvad du mener med "lav dit eget event i set"!

/Lasse
Avatar billede mr-kill Nybegynder
06. juni 2007 - 16:11 #3
her er en måde at gøre det på.. Man kan bruge samme måde med string osv.

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            NyInt i = new NyInt();

            i.Value = 5;

            i.OnValueChange += new myDeletage(i_OnValueChange);
            i.Value = 8;

            System.Threading.Thread.Sleep(1000);
            i.Value += 2;

            System.Threading.Thread.Sleep(1000);
            i.Value = -2;

            System.Threading.Thread.Sleep(1000);
            i.Value = -2;

            Console.Read();
        }

        static void i_OnValueChange(string msg)
        {
            Console.WriteLine(msg);
        }
    }
    public class NyInt
    {
        int i;
        public event myDeletage OnValueChange;

        public NyInt()
        {
            i = 0;
        }
        public NyInt(int value)
        {
            i = value;
        }
        public int Value
        {
            get { return i; }
            set
            {
                if (i != value)
                {
                    int old = i;
                    i = value;

                    if(OnValueChange != null)
                        OnValueChange("Værdi skiftet fra " + old + " til " + value + "!!!");
                }
            }
        }
    }
    public delegate void myDeletage(string msg);
}
Avatar billede lasserasch Juniormester
02. oktober 2007 - 11:56 #4
smid et svar
Avatar billede mr-kill Nybegynder
02. oktober 2007 - 12:01 #5
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester