Whether you're still learning C# or you already have some experience, it's sometimes hard to know what you don't know. This is the follow-up course to C# Tips and Traps and is designed to further short-circuit your C# learning and provides a whole host of useful information about the sometimes under-used or unknown features of both the C# language and the .Net framework. It's suitable for those who are brand new to C# as well as experienced developers looking to "round off" their C# skills and "fill in the gaps".
Part I Hi. Welcome to C# Tips and Traps 2. In this Part I, we'll look at calling generic methods with implicit typing, the differences between the LINQ fluent syntax and the query syntax. We'll learn about multicast delegates and the compatibility and equality of delegates. We'll see how we can use C# keywords for variable names and how this can be useful when interoperating with other languages. We'll look at the consequences of when exceptions occur in static constructors. And finally, we'll look at generic constraints. So, let's get started.
Part II Hi. Welcome back to Part II. In this module, we'll be learning about improving struct equality performance when using the Equals method, the non short-circuiting versions of the & and or operators, how we can auto-generate sequences of integer values, how we can merge two IEnumerable sequences together, and how we can perform set operations on IEnumerable sequences. We'll also learn how we can do custom aggregation with LINQ and how we can hide interface implementations from consumers. We'll look at how we can delay the start of code using Tasks. And finally, we'll look at some of the sorted collection classes available to us.
Part III Hi. Welcome back to Part III. In this module, we're going to look at how to customize the display of objects in the debugger window, how to recreate hidden files without exceptions, how we can work with zip archive files, and how we can compress and decompress in-memory streams. Finally, we'll look at some ways that we can work with URIs.
Part IV Hi. Welcome back to Part IV of C# Tips and Traps 2. In this module, we'll learn about converting characters to numeric values, how we can use generic methods in non-generic classes, how we can defer the creation of resource-intensive or large objects until the first time we use them, and how we can automatically skip code when debugging in Visual Studio. We'll also learn how we can subscribe to file changed events, and finally how we can create nullable value types and how we can use them to implement and ambient properties.