Preview course for free

Preview this course for free.

To preview this course, you will need to create a free account. Once you register, we'll send
you right along and you will get access to the first task in the course (day 1).


No credit card or payment info is required. Existing users, sign-in to begin.

Preview this course for free.

To preview this course, you will need to create a free account. Once you register, we'll send
you right along and you will get access to the first task in the course (day 1).


No credit card or payment info is required. Existing users, sign-in to begin.

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.

You'll need to get a subscription to join this course.
Our subscriptions start at $29.

View your subscription options
Course Summary

As developers, we love to work on new projects. Why is that? One reason is that new code is easy to change and enhance. You take an idea and sculpt it just the way you want, and the result is a thing of beauty (if we're lucky).

What if all our code was that way? What if that mission-critical system that has been built over 5 years was easy to change and enhance? Fortunately over the 6 versions of C#, the architects of the language have added many powerful features to help us reach this lofty goal.

The Design maintainable code with C# course will help you get there. We look at building loosely-coupled systems with events and delegates. We tame class proliferation / explosion with generics. We add declarative behaviors and information to classes using attributes. We dig into building plug-in based software using reflection. And we see that the rarely known yield return keyword is central to working efficiently with large amounts of data and is the foundation of LINQ to Objects.

Course Objectives

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

  • Subscribe to multiple events with a single event handler.
  • Declare events on your own classes.
  • Use lambda expressions where delegates are expected.
  • Initialize a collection with a collection initializer.
  • Use the generic collections.
  • Define a method using the `params` modifier.
  • Load an assembly dynamically at runtime.
  • Defining a method that accepts a delegate parameter.
  • Write an iterator method to expose a large data set efficiently.
  • Recognize when Dispose() should be called.
Edit video url:

Edit Course Objectives











Change objectives

Tasks

Search tasks

tasks found
Save
Preview this task « This task is available right now for free, no payment info required.
Reuse code with generics
11 Activities | Time: 1h 4m | Types: Article (4) | Blog (1) | Practice (5) | Video (1)
Work with collections of items
10 Activities | Time: 1h 11m | Types: Article (5) | Practice (3) | Video (2)
Customize code's behavior with attributes
11 Activities | Time: 1h 3m | Types: Article (8) | Practice (3)
Build an extensible application with reflection
9 Activities | Types: Article (5) | Practice (2) | Run (1) | Video (1)
Subscribe to events
8 Activities | 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)
Write an iterator method to expose a large data set
11 Activities | Time: 1h 19m | Types: Article (4) | Blog (2) | Practice (2) | Run (2) | Video (1)
Access unmanaged resources
10 Activities | Time: 1h 18m | Types: Article (4) | Practice (5) | Video (1)