Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Udemy

Advanced Topics in C#

via Udemy

Overview

A discussion of the more complicated aspects of the C# language

What you'll learn:
  • Apply sophisticated C# solutions to problems
  • Explore different programming styles and approaches

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 SIMDdata 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.

  • 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 PassingStyle — 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 ofControl 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.

Course Pre-Requisites

  • Good understanding ofC#

  • Understanding of object-oriented programming(OOP)

  • Experience writing real-world C# applications

Course Organization

  • 100% hands-on

  • Demonstrated either in Visual Studio or using the Kinetica rendering engine

  • Demos are single .CSfiles

  • Heavy use of IDEfeatures

  • Ad-hoc use of 3rd-party packages

Enjoy!

Taught by

Dmitri Nesteruk

Reviews

4.4 rating at Udemy based on 863 ratings

Start your review of Advanced Topics in C#

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.