It is a programming style where the flow of the program is determined by events like user actions, sensor outputs, or messages from other programs.
Click to reveal answer
beginner
In C#, what keyword is used to declare an event?
The event keyword is used to declare an event in C#.
Click to reveal answer
intermediate
What is a delegate in the context of event-driven design in C#?
A delegate is a type that represents references to methods with a particular parameter list and return type. It is used to define the signature of event handlers.
Click to reveal answer
beginner
How does an event subscriber work in event-driven design?
An event subscriber registers a method to be called when the event is raised. This method is called the event handler.
Click to reveal answer
beginner
Why is event-driven design useful in user interface programming?
Because it allows the program to respond immediately to user actions like clicks or key presses, making the interface interactive and responsive.
Click to reveal answer
Which keyword is used to declare an event in C#?
Aevent
Bdelegate
Cclass
Dinterface
✗ Incorrect
The event keyword declares an event in C#.
What does an event handler do?
ARaises an event
BDeclares a delegate
CListens and responds to an event
DCreates a new event
✗ Incorrect
An event handler listens and responds when an event is raised.
In event-driven design, what triggers the program flow?
AFunction calls
BEvents
CLoops
DVariables
✗ Incorrect
Events trigger the program flow in event-driven design.
Which of these is true about delegates in C#?
AThey are variables that store integers
BThey are used to create classes
CThey are used to declare events
DThey define method signatures for event handlers
✗ Incorrect
Delegates define method signatures that event handlers must follow.
Why is event-driven design good for UI programming?
AIt allows immediate response to user actions
BIt makes the UI static
CIt removes the need for user input
DIt simplifies database access
✗ Incorrect
Event-driven design allows the UI to respond immediately to user actions.
Explain how events and delegates work together in C# event-driven design.
Think about how a delegate sets the rules for methods that respond to events.
You got /4 concepts.
Describe why event-driven design is useful in building interactive applications.
Consider how apps react when you click buttons or type keys.
You got /4 concepts.
Practice
(1/5)
1. What is the main role of an event subscriber in the event-driven design pattern?
easy
A. To manage the program's user interface layout
B. To listen for events and respond when they occur
C. To store data for the program's use
D. To create and send events to other parts of the program
Solution
Step 1: Understand the roles in event-driven design
In event-driven design, publishers send events and subscribers listen for these events.
Step 2: Identify subscriber's responsibility
The subscriber's job is to react or respond when an event happens, meaning it listens and acts accordingly.
Final Answer:
To listen for events and respond when they occur -> Option B
Quick Check:
Subscriber listens and reacts = D [OK]
Hint: Subscribers always listen and react to events [OK]
Common Mistakes:
Confusing subscriber with publisher
Thinking subscriber creates events
Assuming subscriber manages UI layout
2. Which of the following is the correct syntax to declare an event in C#?
easy
A. public void event MyEvent();
B. event public MyEvent EventHandler;
C. public event EventHandler MyEvent;
D. EventHandler public event MyEvent;
Solution
Step 1: Recall event declaration syntax in C#
Events are declared with the keyword 'event' followed by a delegate type, then the event name.
Step 2: Check each option
public event EventHandler MyEvent; matches the correct syntax: 'public event EventHandler MyEvent;'. Others have wrong order or keywords.
3. What will be the output of the following C# code?
using System;
class Program {
public static event Action OnNotify;
static void Main() {
OnNotify += () => Console.WriteLine("Event triggered");
OnNotify?.Invoke();
}
}
medium
A. Event triggered
B. No output
C. Compilation error
D. Runtime exception
Solution
Step 1: Understand event subscription and invocation
The event OnNotify is subscribed with a lambda that prints "Event triggered". The event is then invoked safely with ?.Invoke().
Step 2: Predict output
Since OnNotify has a subscriber, invoking it calls the lambda, printing "Event triggered" to the console.
Final Answer:
Event triggered -> Option A
Quick Check:
Subscribed event invoked prints message = A [OK]
Hint: Subscribed event invocation prints output [OK]
Common Mistakes:
Ignoring null-conditional operator ?.Invoke()
Expecting no output without subscription
Confusing event with method call syntax
4. Identify the error in this C# event-driven code snippet:
public class Publisher {
public event EventHandler OnChange;
public void Raise() {
OnChange();
}
}
medium
A. OnChange event is invoked without checking for null
B. EventHandler delegate is not declared
C. Raise method should be static
D. Event should be private
Solution
Step 1: Review event invocation rules
Events can be null if no subscribers exist. Invoking without null check causes runtime error.
Step 2: Identify the error in code
OnChange() is called directly without checking if OnChange is null, risking NullReferenceException.
Final Answer:
OnChange event is invoked without checking for null -> Option A
Quick Check:
Invoke event safely with null check = C [OK]
Hint: Always check event for null before invoking [OK]
Common Mistakes:
Calling event without null check
Assuming event is never null
Misunderstanding event access modifiers
5. You want to design a system where multiple subscribers react differently to a button click event. Which approach best uses the event-driven pattern in C# to achieve this?
hard
A. Make subscribers poll the button state continuously in a loop
B. Create a list of methods and call them manually without events
C. Use a static method to handle all button clicks centrally
D. Declare a public event, let subscribers add their handlers, and invoke event on button click
Solution
Step 1: Understand event-driven design for multiple subscribers
Events allow multiple subscribers to register handlers that get called automatically when the event fires.
Step 2: Evaluate options for best practice
Declare a public event, let subscribers add their handlers, and invoke event on button click uses a public event and lets subscribers add handlers, which is the standard event-driven approach. Others are less efficient or not event-driven.
Final Answer:
Declare a public event, let subscribers add their handlers, and invoke event on button click -> Option D
Quick Check:
Use events for multiple subscriber reactions = A [OK]
Hint: Use events to notify multiple subscribers automatically [OK]
Common Mistakes:
Manually calling subscriber methods instead of using events
Using polling instead of event notifications
Centralizing all logic in static methods
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.