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

Multicast delegates 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 a delegate named MyDelegate.

C Sharp (C#)
public delegate void [1]();
Drag options to blanks, or click blank then click option'
AMyDelegate
BAction
CDelegate
DFunc
Attempts:
3 left
💡 Hint
Common Mistakes
Using built-in delegate types like Action or Func instead of declaring a new delegate.
Using an invalid delegate name.
2fill in blank
medium

Complete the code to add method1 to the multicast delegate.

C Sharp (C#)
MyDelegate d = method1; d [1]= method2;
Drag options to blanks, or click blank then click option'
A*=
B+
C+=
D-=
Attempts:
3 left
💡 Hint
Common Mistakes
Using + instead of +=.
Using -= which removes a method.
3fill in blank
hard

Fix the error in the code to invoke the multicast delegate safely.

C Sharp (C#)
if ([1] != null) d();
Drag options to blanks, or click blank then click option'
Amethod1
Bd
CMyDelegate
Ddelegate
Attempts:
3 left
💡 Hint
Common Mistakes
Checking a method name instead of the delegate variable.
Not checking for null before invoking.
4fill in blank
hard

Fill both blanks to remove method2 from the multicast delegate and invoke it.

C Sharp (C#)
d [1]= method2; if (d [2] null) d();
Drag options to blanks, or click blank then click option'
A-=
B!=
C==
D+=
Attempts:
3 left
💡 Hint
Common Mistakes
Using += instead of -= to remove a method.
Checking d == null instead of d != null.
5fill in blank
hard

Fill all three blanks to create a multicast delegate, add two methods, and invoke it safely.

C Sharp (C#)
MyDelegate d = method1; d [1]= method2; if (d [2] null) d[3]();
Drag options to blanks, or click blank then click option'
A+=
B!=
C()
D;
Attempts:
3 left
💡 Hint
Common Mistakes
Forgetting to add methods with +=.
Not checking for null before invoking.
Missing parentheses when calling the delegate.

Practice

(1/5)
1. What is the main purpose of a multicast delegate in C#?
easy
A. To call multiple methods with a single delegate invocation
B. To store only one method reference at a time
C. To create a delegate that returns multiple values
D. To prevent methods from being called more than once

Solution

  1. Step 1: Understand delegate basics

    A delegate holds references to methods and can invoke them.
  2. Step 2: Identify multicast delegate behavior

    Multicast delegates can hold multiple method references and call them all in order.
  3. Final Answer:

    To call multiple methods with a single delegate invocation -> Option A
  4. Quick Check:

    Multicast delegates call many methods [OK]
Hint: Multicast delegates call many methods at once [OK]
Common Mistakes:
  • Thinking multicast delegates return multiple values
  • Confusing with single method delegates
  • Assuming multicast delegates prevent repeated calls
2. Which syntax correctly adds a method named ShowMessage to a multicast delegate del?
easy
A. del += ShowMessage;
B. del -+ ShowMessage;
C. del =+ ShowMessage;
D. del = ShowMessage;

Solution

  1. Step 1: Recall delegate addition syntax

    To add a method to a multicast delegate, use the '+=' operator.
  2. Step 2: Check each option

    del += ShowMessage; uses 'del += ShowMessage;' which is correct syntax to add a method.
  3. Final Answer:

    del += ShowMessage; -> Option A
  4. Quick Check:

    Use '+=' to add methods to multicast delegates [OK]
Hint: Use '+=' to add methods to multicast delegates [OK]
Common Mistakes:
  • Using '=' instead of '+=' to add methods
  • Typing operators incorrectly like '=+' or '-+'
  • Confusing removal syntax with addition
3. What will be the output of the following code?
delegate void Notify();
class Program {
  static void A() => Console.WriteLine("A called");
  static void B() => Console.WriteLine("B called");
  static void Main() {
    Notify del = A;
    del += B;
    del();
  }
}
medium
A. No output
B. B called A called
C. A called
D. A called B called

Solution

  1. Step 1: Understand delegate invocation order

    Methods added to a multicast delegate are called in the order they were added.
  2. Step 2: Trace the code execution

    First, method A is assigned, then method B is added. Calling del() invokes A then B.
  3. Final Answer:

    A called B called -> Option D
  4. Quick Check:

    Multicast delegates call methods in added order [OK]
Hint: Methods run in order added to delegate [OK]
Common Mistakes:
  • Assuming reverse order of method calls
  • Expecting only the last method to run
  • Thinking no output occurs without explicit loop
4. Identify the error in this code snippet:
delegate void Notify();
class Program {
  static void A() => Console.WriteLine("A called");
  static void Main() {
    Notify del = A;
    del -= A;
    del();
  }
}
medium
A. Syntax error in delegate declaration
B. del is null when invoked, causing a runtime error
C. Cannot remove method from delegate
D. No error, output is 'A called'

Solution

  1. Step 1: Analyze delegate removal

    Removing the only method from the delegate leaves it null.
  2. Step 2: Check invocation after removal

    Calling del() when del is null causes a NullReferenceException at runtime.
  3. Final Answer:

    del is null when invoked, causing a runtime error -> Option B
  4. Quick Check:

    Removing last method makes delegate null [OK]
Hint: Removing last method makes delegate null, check before calling [OK]
Common Mistakes:
  • Assuming delegate still holds method after removal
  • Ignoring null check before invoking delegate
  • Thinking removal causes syntax error
5. You want to create a multicast delegate that calls three methods: LogStart, ProcessData, and LogEnd. Which code correctly sets up and invokes this delegate?
hard
A. Notify del; del = LogStart; del = ProcessData; del = LogEnd; del();
B. Notify del = LogStart + ProcessData + LogEnd; del();
C. Notify del = LogStart; del += ProcessData; del += LogEnd; del();
D. Notify del = LogStart; del -= ProcessData; del += LogEnd; del();

Solution

  1. Step 1: Understand delegate combination

    Use '+=' to add methods to a multicast delegate one by one.
  2. Step 2: Evaluate each option

    Notify del = LogStart; del += ProcessData; del += LogEnd; del(); correctly initializes with LogStart, then adds ProcessData and LogEnd, then calls del().
  3. Final Answer:

    Notify del = LogStart; del += ProcessData; del += LogEnd; del(); -> Option C
  4. Quick Check:

    Use '+=' repeatedly to build multicast delegate [OK]
Hint: Add methods one by one with '+=' to build multicast delegate [OK]
Common Mistakes:
  • Using '+' operator directly without delegate type
  • Overwriting delegate instead of adding methods
  • Removing methods unintentionally before calling
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