Bird
Raised Fist0
C Sharp (C#)programming~20 mins

Event declaration syntax in C Sharp (C#) - Mini Project: Build & Apply

Choose your learning style10 modes available
Event Declaration Syntax in C#
📖 Scenario: You are building a simple notification system where a class can notify others when an event happens.
🎯 Goal: Create a class with an event declaration and trigger the event to notify subscribers.
📋 What You'll Learn
Declare an event using the event keyword
Use a delegate type EventHandler for the event
Create a method to raise the event
Subscribe to the event and handle it by printing a message
💡 Why This Matters
🌍 Real World
Events are used in user interfaces, game programming, and many applications to notify parts of a program when something happens.
💼 Career
Understanding event declaration and handling is essential for C# developers working on desktop apps, web apps, and game development.
Progress0 / 4 steps
1
Create a class with an event declaration
Create a class called Notifier and declare an event called OnNotify using the delegate type EventHandler.
C Sharp (C#)
Hint

Use public event EventHandler OnNotify; inside the class.

2
Add a method to raise the event
Inside the Notifier class, add a public method called Notify that raises the OnNotify event if it has subscribers.
C Sharp (C#)
Hint

Use the null-conditional operator ?. to safely invoke the event.

3
Subscribe to the event and handle it
Create a Main method. Inside it, create an instance of Notifier called notifier. Subscribe to the OnNotify event with a lambda that prints "Event triggered!".
C Sharp (C#)
Hint

Use notifier.OnNotify += (sender, e) => Console.WriteLine("Event triggered!"); to subscribe.

4
Trigger the event and display the output
In the Main method, after subscribing, call the Notify method on notifier to trigger the event and print the message.
C Sharp (C#)
Hint

Call notifier.Notify(); to raise the event and see the message.

Practice

(1/5)
1. What keyword is used in C# to declare an event?
easy
A. trigger
B. delegate
C. event
D. notify

Solution

  1. Step 1: Understand event declaration basics

    In C#, events are declared using the event keyword followed by a delegate type.
  2. Step 2: Identify the correct keyword

    The keyword event specifically marks a member as an event, enabling subscription and notification.
  3. Final Answer:

    event -> Option C
  4. Quick Check:

    Event declaration uses 'event' keyword [OK]
Hint: Events always start with the 'event' keyword in C# [OK]
Common Mistakes:
  • Using 'delegate' instead of 'event' keyword
  • Confusing event with method declaration
  • Trying to declare event without a delegate type
2. Which of the following is the correct syntax to declare an event named OnClick using a delegate Action?
easy
A. public event Action OnClick;
B. public delegate event Action OnClick;
C. event public Action OnClick();
D. public Action event OnClick;

Solution

  1. Step 1: Recall correct event declaration syntax

    The correct syntax is: public event DelegateType EventName; without extra keywords or parentheses.
  2. Step 2: Analyze each option

    public event Action OnClick; matches the correct syntax exactly. Options A, B, and D misuse keyword order or add invalid syntax.
  3. Final Answer:

    public event Action OnClick; -> Option A
  4. Quick Check:

    Correct event syntax = public event Action OnClick; [OK]
Hint: Remember: 'event' comes before delegate type, no parentheses [OK]
Common Mistakes:
  • Adding parentheses after event name
  • Placing 'event' after delegate type
  • Combining 'delegate' and 'event' keywords incorrectly
3. What will be the output of the following code?
using System;
class Program {
public static event Action OnStart;
static void Main() {
OnStart += () => Console.WriteLine("Started");
OnStart?.Invoke();
}
}
medium
A. No output
B. Compilation error
C. Runtime error
D. Started

Solution

  1. Step 1: Understand event subscription and invocation

    The event OnStart is subscribed with a lambda that prints "Started". The ?.Invoke() safely calls the event if not null.
  2. Step 2: Predict program output

    Since the event has one subscriber, invoking it prints "Started" to the console.
  3. Final Answer:

    Started -> Option D
  4. Quick Check:

    Subscribed event invoked prints 'Started' [OK]
Hint: ?.Invoke calls event only if not null, so output prints [OK]
Common Mistakes:
  • Assuming event is null and no output
  • Confusing event invocation syntax
  • Expecting compilation or runtime errors
4. Identify the error in the following event declaration and fix it:
public class Button {
public event Action OnClick();
}
medium
A. Change 'event' to 'delegate'
B. Remove parentheses after OnClick
C. Add 'void' before event keyword
D. Add parentheses after event keyword

Solution

  1. Step 1: Analyze event declaration syntax

    Events are declared without parentheses after the event name because they are not methods but event fields.
  2. Step 2: Correct the syntax

    Removing parentheses after OnClick fixes the syntax: public event Action OnClick;
  3. Final Answer:

    Remove parentheses after OnClick -> Option B
  4. Quick Check:

    Events declared without parentheses [OK]
Hint: Events are fields, not methods--no parentheses after name [OK]
Common Mistakes:
  • Adding parentheses after event name
  • Using 'delegate' keyword instead of 'event'
  • Trying to declare event as a method
5. You want to declare an event DataReceived that uses a custom delegate DataHandler accepting a string parameter. Which is the correct declaration?
hard
A. public delegate void DataHandler(string data); public event DataHandler DataReceived;
B. public event void DataHandler(string data); public DataReceived event;
C. public event DataHandler(string data) DataReceived;
D. public DataHandler event DataReceived(string data);

Solution

  1. Step 1: Declare the delegate type first

    Custom delegates must be declared separately with the correct signature: public delegate void DataHandler(string data);
  2. Step 2: Declare the event using the delegate type

    The event is declared as: public event DataHandler DataReceived; without parentheses.
  3. Final Answer:

    public delegate void DataHandler(string data); public event DataHandler DataReceived; -> Option A
  4. Quick Check:

    Delegate declared first, event uses delegate type [OK]
Hint: Declare delegate first, then event with delegate type and no parentheses [OK]
Common Mistakes:
  • Trying to declare event with parameters directly
  • Mixing delegate and event keywords
  • Adding parentheses after event name
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard