This course presents a collection of interesting/unusual case studies where C# is used to solve a particular problem. This course is 100% practical, and demonstrates mainly the practical applications of C# in building solutions to common problems.
The main themes covered in this course are:
Numerics the specifics of how to work with numeric types in .NET, with a focus on SIMD data types and operations.
Reflection how to operate reflection mechanisms to investigate assemblies and types, how to create types and invoke their members. Also a look at the practical use of reflection for working with attributes.
Memory Management a discussion of latest C# features for high performance computation, such as the passing of value types by reference, ref structs and Span<T>.
Extension Methods a seemingly simple mechanism has plenty of advanced uses.
In addition, this course comes with a section dedicated to assorted topics that also showcase advanced uses of C#. These topics include:
Exploiting IDisposable shows how you can abuse the IDisposable/using mechanism in order to dynamically define operations as pairs of start/end calls. Useful for things like simple performance measurement.
Continuation Passing Style demonstrates how you can define complex algorithms in terms of sequentially invoked methods with customized return types indicating the result of the operation.
Specification: Advanced Topics in C#