Gå til innhold

Anbefalte innlegg

Jeg er i en tidlig fase for å lære meg om delegates og events. I den forbindelse tenker jeg å lage en tenkt løsning som skal overvåke ulike maskiner. Programmet kan motta events fra maskinene om f.eks høyt trykk eller temp. Det skal sendes ut en allarm og etter en stund skal maskinen stoppes.

 

Jeg har begynt å fundere på det stoppet etter hvert opp. Noen som har råd og tips til hvordan dette skal løses? Det er ikke snakk om noen avansert løsning, bare enklest mulig for å skjønne poenget.

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;


namespace Test
{
   class Program
   {
       static void Main(string[] args)
       {
           Console.ReadKey(true);
       }
   }


   class Overvåker
   {
       public delegate void stoppMaskinerDelegate();
       public event stoppMaskinerDelegate maskinTemp;
       public event stoppMaskinerDelegate maskinOljetrykk;
       public event stoppMaskinerDelegate maskinFeil;

       public Overvåker()
       {

       }

       private void Notify()
       {
           if (this.maskinTemp != null)
           {
               this.maskinTemp();
           }

           if (this.maskinOljetrykk != null)
           {
               this.maskinOljetrykk();
           }

           if (this.maskinFeil != null)
           {
               this.maskinFeil();
           }
       }

       public void Start() //Abonner:
       {

       }

       public void Stopp() //Ikke abonner
       {

       }
   }


   class Dreiemaskin
   {
       private Dreiemaskin dreier;
   }


   class Sveisemaskin
   {
       private Sveisemaskin sveiser;
   }


   class Lakkeringsmaskin
   {
       private Lakkeringsmaskin lakkerer;
   }
}

Lenke til kommentar
Videoannonse
Annonse
public delegate void TomDelegate();
public class Maskin
{
 public event TomDelegate FingreSitterFast();
 public void MaskinGår()
 {
if(bruker.sinefingre.Posisjon < (this.posisjon + størrelse))
  OnFingreSitterFast();
 }
 protected virtual void OnFingreSitterFast()
 {
if(FingreSitterFast != null)
  FingreSitterFast();
 }
}

public static class Program
{
 Maskin dreiemaskin;
 public static void Main(string[] args)
 {
dreiemaskin = new Maskin();
dreiemaskin.FingreSitterFast += 
  new TomDelegate(this.SattFastFingrene);
dreiemaskin.MaskinGår();
 }
 public void SattFastFingrene()
 {
MessageBox.Show("Au!");
 }
}

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...