Advanced Topics in C#
A discussion of the more complicated aspects of the C# language
What you’ll learn
Advanced Topics in C#
- Apply sophisticated C# solutions to problems
- Explore different programming styles and approaches
- Deep knowledge of the C# programming language
- Familiarity with key .NET data structures and algorithms
- Good command of modern IDEs and developer tools
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 the 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 that 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.
- Local Inversion of Control shows that sometimes inversion of control happens at a local scale. Here we use extension methods to invert control on a bunch of different data types, providing useful functionality.
- Beyond the Maybe Monad — even though C# introduced the ?. operator in order to chain null checks together, the classic monad implementation, based on extension methods, is still relevant, as it can also handle other scenarios.
- Mnemonics — not so much a C# language feature but rather an interesting way of defining huge sets of similar code templates that can be expanded quickly to the code constructs you need the most.
- Good understanding of C#
- Understanding of object-oriented programming (OOP)
- Experience writing real-world C# applications
- 100% hands-on
- Demonstrated either in Visual Studio or using the Kinetica rendering engine
- Demos are single.CS files
- Heavy use of IDE features
- Ad-hoc use of 3rd-party packages
Who this course is for:
- Experienced C# developers
- C#/.NET Architects
- Last updated 1/2021
Content From: https://www.udemy.com/course/advanced-topics-csharp/