C# Programming Level 2: Advanced Programming Techniques Course Outline
Overview
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.
Prerequisites
Students should have experience with C# and working knowledge of the skills covered in
C# Programming Level 1: Introduction for Non-Programmers ![go to link]()
.
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#
- Error handling
COURSE OUTLINE
1 Advanced Topics
Delegates and events
Delegates
Events
Anonymous types
Tuples
The Tuple class
Value tuples
Pattern matching
The is expression
The switch expression
Regular expressions
Overview
Matching input text
Finding substrings
Replacing parts of a text
Extension methods
2 Resource Management
Garbage collection
Finalizers
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
LINQ
Standard query operators
Query syntax
Currying
Closures
Monoids
Monads
4 Reflection and Dynamic Programming
Understanding reflection
Dynamically loading assemblies
Understanding late binding
Using the dynamic type
Attributes
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
XCS2NS