Take a class, join the instructor-supported online learning revolution.

Choose a class date below to get started. Every class comes with a complimentary subscription which begins immediately even if your class doesn't start for a week or two. You can be learning in just minutes.

Upcoming classes: Choose this date >>

Take this course.

View purchase options
Course Summary

Every software developer strives to build loosely-coupled systems. They are a key element in maintainable code. Traditionally, in languages such as Java and C++, developers jumped through hoops to implement the observer design pattern to achieve this goal.

The architects of the C# language had the great foresight to elevate this concept to primitives in the language making loosely coupled systems both attainable and (relatively) simple in C#. This includes language concepts such as:

  • delegates
  • the event keyword
  • anonymous delegates
  • lambda expressions

The C# event-based programming course will quickly get developers up to speed on these concepts and more.

In addition to building maintainable systems, these concepts are fundamental for building user interfaces in technologies such as WPF, Windows Store Apps, Windows Forms, and Web Forms. They also are key building blocks for both asynchronous programming and data access with LINQ in C#.

Course Objectives

After completing this course, you should be proficient in the following:

  • List 3 uses for delegates.
  • Recognize events on a class interface.
  • Subscribe to multiple events with a single event handler.
  • Declare events on your own classes.
  • Use the built-in EventHandler<T> delegate.
  • Know why lambda expressions were added to the language.
  • Write your own lambda expressions.
  • Use lambda expressions where delegates are expected.
  • Build the foundations for asynchronous programming in C#.
  • Build the foundations for data access with LINQ in C#.
Edit video url:

Edit Course Objectives

Change objectives


Search tasks

tasks found
Subscribe to events
8 Activities | Time: 1h 1m | Types: Article (3) | Blog (1) | Practice (2) | Video (2)
Declare events
10 Activities | Time: 1h 38m | Types: Article (4) | Blog (2) | Practice (3) | Video (1)
Define and use delegates as method parameters
15 Activities | Time: 1h 46m | Types: Blog (4) | Practice (7) | Video (4)
Use lambda expressions to call methods that require delegate parameters
9 Activities | Time: 1h 49m | Types: Article (2) | Practice (4) | Video (3)