
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.
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.
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.
In this course I am going to teach you some very cool and advanced C# language features.
How many of you can explain what the yield return statement does? What are the benefits of auto property initializers? And what's an expression bodied function?
If you don't know about these power features, you might be 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.