Spice Up Your C# Code With Advanced Language Features

A comprehensive guide on how to spice up your C# code with many advanced language features
4.5 (35 ratings)
Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
445 students enrolled
83% off
Take This Course
  • Lectures 21
  • Length 2.5 hours
  • Skill Level All Levels
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 3/2016 English

Course Description

BEST COURSE CHOICE for beginners and intermediate developers who want to take their skills to the next level and deepen their understanding of the C# language.

In this course I am going to teach you some very cool and advanced C# language features.

So let's see a show of hands. How many of you can explain what the yield return statement does? What are the benefits of auto properties? And what's the risks of using captured variables in lambda expressions?

If you have no idea what an 'auto property' is, don't worry about it! The C# language is absolutely packed with goodies, and it is almost impossible to keep up with all the latest features. I bet there are many power features that you've never used before.

But this can also hold you back

Not knowing about these power features means you are probably typing way too much code that the C# compiler can produce for you automatically. This is slowing you down and it may reduce the quality of your code.

Let me help you!

In this course I will teach you 10 advanced power features of the C# language. You will learn all about the null coalescing operator, auto properties, object initialisers, lambda expressions, and much more! And I will also show you some very cool new language features that were introduced in C# version 6.

By the end of the course you will be fluent in advanced C#, and this will help you write better, cleaner and more compact code.

Why should you take this course?

You should take this course if you are a beginner or intermediate developer and want to learn advanced features of the C# language. This might seem like a challenge, but all of my lectures are very easy to follow and I explain everything clearly. You'll have no trouble following along.

Or maybe you're preparing for a job interview? The knowledge in this course will help you prepare for any questions they might throw at you.

30 day money-back guarantee

This course comes with an unconditional, Udemy backed, 30-day money-back guarantee. If you are dissatisfied with the course for any reason, simply request a refund and get your full purchase amount back, no questions asked.

Act now

This course today contains over 2.5 hours of video content. Enrol now to benefit from the current price and get free lifelong access to all of the content.

Enrol now!

What are the requirements?

  • You should have a Windows, Mac or Linux laptop with Microsoft Visual Studio, Xamarin Studio or Monodevelop installed
  • You should be familiar with the C# language
  • That's all!

What am I going to get from this course?

  • Learn from a certified Microsoft trainer from your own desk
  • Many hours of video content showing you extension methods, lambda expressions, LINQ query expressions, auto properties, and much more!
  • Learn what happens when the C# compiler encounters a yield return statement
  • Use lambda expressions in the body of your functions and properties
  • See how easy it is to deal with null values by using the null conditional and null coalescing operators
  • Learn how to write better, cleaner, and more compact code

Who is the target audience?

  • This course is for beginner and intermediate C# programmers who want to learn advanced C# language features
  • Ideal for students who are working on a complex project and want to deepen their understanding of the C# language
  • Are you preparing for a C# job interview? Then this course is for you!

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.


Section 1: Introduction

In this lecture I explain how this course is organised and I describe each of the upcoming sections in detail. I'll also tell a bit more about myself, my career, and my motivation to become an online trainer.

Section 2: Essential C# Language Features Every Developer Should Know

Welcome to the Essential C# Language Features section. I will give a quick introduction on how the section is organized before we get started.


The Null Coalescing operator is extremely useful in providing a graceful fallback when there's a null value in an expression. In this lecture I will show you some examples of how you can put this very versatile operator to good use.


Did you know C# has two kinds of typecasts? There's a 'hard' typecast where you put the destination type in parenthesis, and there's the 'soft' typecast that uses the 'as' operator.

In this lecture I will explain the difference between the two, and you will learn several examples of how using soft typecasts can clean up your code.


Auto properties are a really useful feature where the C# compiler automatically creates the complete property getter and setter implementation for you. Which begs the question: why not simply use a public field instead?

In this lecture I will answer that question, and you will learn how to put auto properties to good use.


The String class has many useful helper methods, including IsNullOrEmpty, IsNullOrWhiteSpace, and Equals. In this lecture I will show you how these three handy methods can help you clean up your code, and I'll explain how they also provide a tiny performance benefit.


You're probably familiar with using the 'using' statement to import namespaces. But did you know you can also use this statement to automatically dispose object instances?

In this lecture I'll show you exactly how it's done, and I will also demonstrate two common mistakes when using the 'using' statement.


Have you ever needed to write pages of initialisation code, to set up a collection and fill it with objects? Well, no more! Object and collection initialisers now let you create complex object collections with only a few lines of code.

In this lecture I will show you exactly how it's done.


Did you know there are two ways of writing a LINQ expression? One is by calling extension methods like Where and Select. But the other is by writing your query as an elegant LINQ query expression: a SQL-ish language that's integrated right into C#.

In this lecture I will teach you how to write LINQ queries as query expressions, and I will demonstrate how easy it is to perform complex operations like joins, mixing generators, and even initialising temporary variables within your query.


A dreaded job interview question is having to explain what the yield return statement does in C#. But don't worry, I've got your back. This lecture will show you exactly what happens when the compiler encounters a yield return statement in your code.


Extension methods are a very unusual and somewhat controversial feature in C#, where you declare a static method that actually pretend to be instance method instead!

In this lecture I will teach you how to write an extension method, I'll discuss several arguments for and against using them, and I'll show you 5 handy extension methods you can use in your own code.


A lambda expression is a very compact way of writing a delegate with parameters that optionally returns a value. Lambdas are used everywhere in LINQ, and in this lecture I'll teach you exactly how to declare and use them.


Congratulations on finishing this section. This is a recap of what we have learned.

Essential Language Features
10 questions
Section 3: New And Cool C# Language Features Introduced In Version 6.0
Welcome to the New And Cool C# Language Features section. I will give a quick introduction on how the section is organized before we get started.

The Null Conditional operator is a very cool feature that lets you access a field, property or method of an object instance and gracefully handle null values. In this lecture I'll teach you how you can put this operator to good use in your code.


Auto property initialisers let you declare a property, have the C# compiler generate the getter and setter implementation for you, and initialise the property, all in a single line of code. This lecture shows you how to put this feature to good use.


Declaration expressions are assignments that also return a value. In this lecture I'll show you where this feature comes in extremely handy.


An expression-bodied function and property is a function (or property) that you declare with a lambda expression. In this lecture I'll show you how this nice little feature can really clean up your code.


C# version 6 finally lets you use the await keyword in catch and finally blocks. In this lecture I'll demonstrate some code that puts this new feature to good use.

Congratulations on finishing this section. This is a recap of what we have learned.
C# Version 6 Language Features
5 questions
Section 4: Final Words
In this lecture I would like to thank you for finishing the course and offer some final words.

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Mark Farragher, Microsoft Trainer

Hi I'm Mark, and I am very pleased to meet you!

My IT career spans 2 decades and I've worn many different hats over the years. I am a serial entrepreneur and have launched two startups in The Netherlands. I've also been a CTO three times.

I started working with C# and the .NET framework 15 years ago. Today I live in Barcelona and spend my time creating online courses to share my knowledge of professional C# programming with a wide audience.

Ready to start learning?
Take This Course