Wkuno

Hvordan lage et arrangement for en Ciss klasse

Mange C #-programmerere bruke hendelser i andre klasser ved å feste hendelseshåndterere til dem, men har du noen gang ønsket å implementere din egen hendelse (r) i klasser som du utvikler? Dette er en systematisk enkel guide til å lage dine egne hendelser uten å bekymre deg for å glemme noe.

Trinn

Hvordan lage et arrangement for en Ciss klasse. Lag arrangementet argumenter klassen.
Hvordan lage et arrangement for en Ciss klasse. Lag arrangementet argumenter klassen.
  1. 1
    Lag arrangementet argumenter klassen:
    1. Bestem hva du ønsker å kommunisere med ditt arrangement abonnenter (andre programmerere som vil feste hendelseshåndterere til ditt arrangement). For eksempel, hvis arrangementet er å varsle utviklere når en verdi endres, kan det være lurt å fortelle dem den gamle verdien og den nye. Hvis du har ingenting å kommunisere til abonnenter, bruke klassen og hoppe over dette trinnet.
    2. Opprett en offentlig klasse kalt der EventName er navnet på ditt arrangement
    3. Arv klassen fra
    4. Lag en beskyttet felt for hver bit av data du vil kommunisere med abonnenter. For eksempel, i en hendelse som vil varsle utviklere om en endring i en streng verdi, kan det være lurt å fortelle dem de gamle og de nye strenger så feltene vil se ut: oldVal, newVal;
    5. Opprett en offentlig eiendom for hvert felt du opprettet i 1.4 som bare har et {FieldName;} metoden (der FieldName er navnet på feltet du opprettet i 1.4
    6. Opprett et privat tomt konstruktør for klassen med ingen implementering. Konstruktøren skal se ut: EventName EventArgs () {}
    7. Opprett en offentlig konstruktør for klassen som tar så mange argumenter som det er felt / data. For eksempel, i en streng verdiendring hendelse, vil konstruktøren se slik ut: EventName EventArgs (oldValue, NewValue) {oldVal = oldValue; newVal = NewValue;}
  2. 2
    Erklære hendelsen delegat. Hvis du ikke har opprettet en hendelse argumenter klasse fordi det er ingen data å kommunisere med abonnenter, bruk representanten og hoppe over dette trinnet. Representanten erklæringen skal se ut: EventName Handler (avsender, e);
  3. 3
    Erklære selve arrangementet i inneholder klassen: bruke arrangementet handler delegat du erklært / besluttet i to som arrangementet type. Erklæringen skal se ut: EventName;
  4. 4
    Erklære event-firing metode - En beskyttet virtuell metode som har nøyaktig følgende erklæring:EventName (e) {(EventName =!) {EventName (e);}} Bruk arrangementet argumenter klassen du valgte å bruke i en
  5. 5
    Ring event-firing metode du erklært i fire når hendelsen oppstår. Dette er den vanskeligste delen. Du bør vite når hendelsen du oppretter vil brann (hvilke områder i koden fører hendelsen til å skje) og kaller metoden med den aktuelle hendelsen argumenter klassen forekomst. For eksempel, i strengen verdiendring hendelse, må du se hva koden kan forårsake denne verdien til å endre, lagre sin gamle verdi før endringen, la koden for å endre verdien, passerte opprette en hendelse argumenter objekt med den gamle og nye verdier til konstruktøren og passerer objektet til event-avfyring metoden.

Tips

  • Være forpliktet til navnepraksisen nevnt i denne veiledningen, er det en de-facto standard, og de fleste net / Mono utviklere bruke den.
  • Ikke over kommunisere til abonnenter. Med andre ord, ikke overføre data som ikke er knyttet til hendelsen.
  • Velg navnet på ditt arrangement nøye og tydelig. Event navn som "ValPsd" i stedet for "ValuePassed" er ikke oppmuntret.
  • Vanligvis er de accessibilities brukt i denne artikkelen tilfelle. Du kan imidlertid endre tilgjengeligheten av enhver erklæring, så lenge det ikke gjengi element forandret ubrukelig av andre elementer i arrangementet prosessen.
  • Undersøke alle steder i koden der hendelsen kan oppstå. Noen ganger fører til mer enn ett stykke kode arrangementet til brann.
  • Se etter eventuelle endringer du gjør i klassen din etter at du erklære hendelsen. Se om endringen påvirker den utløsende / avfyring av hendelsen.

Advarsler

  • Hvis du legger arrangementet til en i stedet for en, ta varsel av følgende endringer:
    1. Bruk "" i stedet for "" når erklære event-firing metode i fire.
    2. I konstruktøren av den som erklærer arrangementet, må du starte selve arrangementet, eller du får en kompileringsfeil. Initialiser hendelser ved å opprette nye event handler delegere gjenstander og tildele dem til hendelsen. Initialisering koden skal se slik ut: EventName = (); eller EventName Handler =;

Ting du trenger

  • A. NET Framework installert (enten MS. NET rammeverket på Windows eller Mono på andre operativsystemer).
  • AC # kompilator (CSC verktøy i MS. NET SDK, CMCs i Mono rammeverket, eller kompilatoren inkludert i. NET IDE som Visual Studio 2005/2008 for Windows eller MonoDev for Linux).
  • Koden av klassen du ønsker å legge til hendelsen.
  • Noen kode redigeringsverktøy (Notepad er nok, men Visual Studio, MonoDev, Notepad + + eller andre redigeringsprogram kan gjøre utvikling og kode skrivingen enklere).