AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein C# Eigenes Ereignis für eine Klasse
Thema durchsuchen
Ansicht
Themen-Optionen

C# Eigenes Ereignis für eine Klasse

Ein Thema von Luckie · begonnen am 15. Mär 2005 · letzter Beitrag vom 21. Mär 2005
 
Robert_G
(Gast)

n/a Beiträge
 
#9

Re: C# Eigenes Ereignis für eine Klasse

  Alt 19. Mär 2005, 19:23
Wenn ihm der Bleistift aus der SDK Doku nicht zusagt, muss er sich eben mein wirres Beispiel antun.
Code:
/*
 * Created by SharpDevelop.
 * User: Robert
 * Date: 19.03.2005
 * Time: 20:11 PM
 */
using System;

namespace DelphiPRAXIS.Samples.EventsFürHerrnPuff // ;-)
{
   public class EventTest
   {
      /// <summary>
      /// <see cref="EventArgs"/>ableitung, die einen String hält.
      /// </summary>
      public class MyEventArgs :EventArgs
      {
         string someString;
         
         public string SomeString
         {
            get   {return someString;}
            set {someString = value;}
         }
         
         public MyEventArgs(string someString)
         {
            this.someString = someString;
         }
      }
      
      /// <summary>
      /// Los <see cref="Delegate">Delegatos</see>...
      /// </summary>
      public delegate void SampleEventHandler(object sender, MyEventArgs e);
      
      /// <summary>
      /// Der zu <see cref="EventTest.SampleEventHandler">SampleEventHandler<see/> gehörende <see cref="Event"/>
      /// </summary>
      /// <param name="e">siehe <see cref="EventTest.MyEventArgs">MyEventArgs</see></param>
      public event SampleEventHandler SampleEvent;
      
      /// <summary>
      /// Die Methode, die <see cref="EventTest.SampleEvent">SampleEvent<see/> feuert.
      /// </summary>
      protected virtual void OnSampleEvent(MyEventArgs e)
      {
         if (SampleEvent != null)
         {
            SampleEvent(this, e);
         }
      }
      
      /// <summary>
      /// Eine simple Beispielmethode.
      /// <remarks>Sie wird eigentlich "Hallo" in die Kommmandozeile ausspucken.
      /// dieser Wert kann aber durch den <see cref="EventTest.SampleEvent">SampleEvent<see/> abgefangen und verändert werden.</remarks>
      /// </summary>
      public void DoSomething()
      {
         MyEventArgs eventArgs = new MyEventArgs("Hallo");
         
         OnSampleEvent(eventArgs);
         
         Console.WriteLine(eventArgs.SomeString);
      }
   }
   
   class Program
   {
      
      void SampleEventCall(object sender, EventTest.MyEventArgs e)
      {
         e.SomeString = "Möööp";
      }
      
      
      public void RunSample()
      {
         EventTest eventTest = new EventTest();
         eventTest.SampleEvent += new EventTest.SampleEventHandler(SampleEventCall);
         
         eventTest.DoSomething();
         
      }
      
      
      public static void Main(string[] args)
      {
         Program program = new Program();
         program.RunSample();
      }
   }
}
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz