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

Event declaration syntax in C Sharp (C#) - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to declare an event named OnChange of type EventHandler.

C Sharp (C#)
public event [1] OnChange;
Drag options to blanks, or click blank then click option'
AEventHandler
Bdelegate
Cevent
DAction
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'delegate' keyword instead of the event type.
Using 'event' keyword twice.
Using 'Action' without proper delegate signature.
2fill in blank
medium

Complete the code to declare an event named DataReceived using a custom delegate DataHandler.

C Sharp (C#)
public delegate void DataHandler(string data);
public event [1] DataReceived;
Drag options to blanks, or click blank then click option'
AFunc<string>
BEventHandler
CAction<string>
DDataHandler
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'EventHandler' instead of the custom delegate.
Using 'Func' which is not a valid event delegate here.
Using 'Action' without declaring it.
3fill in blank
hard

Fix the error in the event declaration by completing the code.

C Sharp (C#)
public [1] OnUpdate;
Drag options to blanks, or click blank then click option'
AEventHandler event
Bvoid event EventHandler
Cevent EventHandler
Ddelegate void EventHandler()
Attempts:
3 left
💡 Hint
Common Mistakes
Placing 'delegate' keyword incorrectly.
Swapping order of 'event' and delegate type.
Including 'void' keyword in the event declaration.
4fill in blank
hard

Fill both blanks to declare an event named ProcessCompleted using a delegate named ProcessHandler.

C Sharp (C#)
public [1] [2] ProcessCompleted;
Drag options to blanks, or click blank then click option'
Aevent
Bdelegate
CProcessHandler
Dvoid
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'delegate' keyword instead of 'event'.
Using 'void' instead of the delegate type.
Swapping the order of keywords.
5fill in blank
hard

Fill all three blanks to declare an event named Alert using a delegate named AlertHandler with no parameters.

C Sharp (C#)
public [1] [2] [3];
Drag options to blanks, or click blank then click option'
Aevent
BAlertHandler
CAlert
Ddelegate
Attempts:
3 left
💡 Hint
Common Mistakes
Including 'delegate' keyword in the declaration line.
Swapping delegate type and event name.
Omitting the 'event' keyword.

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