Welcome to ONLC Training Centers

C# Programming Level 2: Advanced Programming Techniques

Class Dates
(click date for class times)
(click Enroll for locations)

Fee:  $995

Savings options:

 Learning Credits
Need a price quote?

Follow the link to our self-service price quote form to generate an email with a price quote.

Need a class for a group?

We can deliver this class for your group. Follow the link to request more information.

Email Alert

Receive an email when this class is available as "Ready to Run" or "Early Notice" status.

Train from your home or office

If you have high-speed internet and a computer you can likely take this class from your home or office.

C# Programming Level 2: Advanced Programming Techniques Course Outline

In this C# training course, students already familiar with C# programming will learn advanced C# techniques.

This advanced C# course is taught using C# 8.

Students should have experience with C# and working knowledge of the skills covered in Core Skills: Level 1. Specifically, you should know: how C# works and its place in the world of programming languages; its relationship with the Common Language Infrastructure and .NET Framework; C# data types and operators; how to write selection statements and loops; generic programming and working with collections; tools for processing data with C#; and error handling.

For more information on the Level 1 course, go to:
C# Programming Level 1: Introduction for Programmers

Course Outline

1 Advanced Topics
Delegates and events
Anonymous types
The Tuple class
Value tuples
Pattern matching
The is expression
The switch expression
Regular expressions
Matching input text
Finding substrings
Replacing parts of a text
Extension methods

2 Resource Management
Garbage collection
The IDisposable interface
The using statement
Platform invoke
Unsafe code

3 Lambdas, LINQ, and Functional Programming
Functional programming
Functions as first-class citizens
Lambda expressions
Standard query operators
Query syntax

4 Reflection and Dynamic Programming
Understanding reflection
Dynamically loading assemblies
Understanding late binding
Using the dynamic type
System attributes
User-defined attributes
How to use attributes?
Attribute targets
Assembly attributes
Attributes in reflection

5 Multithreading and Asynchronous Programming
What is a thread?
Creating threads in .NET
Using the ThreadPool class
Understanding synchronization primitives
The task paradigm
Synchronous implementations of asynchronous methods
Occasionally asynchronous methods
Breaking the task chain blocking the thread
Manually creating a task
Long-running tasks
Breaking the task chain fire and forget
Task and exceptions
Canceling a task
Monitoring the progress of a task
Parallelizing tasks
Signaling tasks with the TaskCompletionSource object
Synchronization context

6 Unit Testing
What is unit testing?
What are Microsoft tools for unit testing?
Creating a C# unit testing project
Writing unit tests
Analyzing code coverage
The anatomy of a test
Writing data-driven unit tests
Data from attributes
Dynamic data
Data from external sources

View outline in Word


Attend hands-on, instructor-led C# Programming Level 2: Advanced Programming Techniques training classes at ONLC's more than 300 locations. Not near one of our locations? Attend these same live classes from your home/office PC via our Remote Classroom Instruction (RCI) technology.

For additional training options, check out our list of Courses and select the one that's right for you.


Class Format
Class Policies
Student Reviews

First Name

Last Name