C# Language Internals - Part 2
The second part of the C# Language Internals course continues our journey of the inner workings of the C# programming language and the CLR.
What you'll learn
In the second part of this course, we take .NET developers behind the scenes of advanced C# language features to get a deeper insight into the language, the Intermediate Language (IL) it compiles into, and the Common Language Runtime (CLR) it runs on. By studying language internals, you can make better design choices involving advanced language features, solve hard debugging puzzles quicker, and understand the performance ramifications of these language features. This is the second part of a two-part course.
Table of contents
- Overview of the System.Runtime.CompilerServices Namespace 2m
- Introducing the ConditionalWeakTable Type 3m
- Object Lifetimes in ConditionalWeakTable Collections 2m
- Building Extension Properties using ConditionalWeakTable 7m
- Using MethodImplAttribute 4m
- Influencing Inlining Using MethodImplOptions 6m
- The IndexerNameAttribute Type 2m
- Getting to Know Caller Info Attributes 5m
- Under the Hood of Caller Info Attributes 6m
- Summary 2m
- COM Interop and the History of PIAs 5m
- Basics of Using No PIA 4m
- Behind the Scenes of No PIA 7m
- Using No PIA Across Class Libraries 5m
- Windows Runtime Essentials 3m
- Type Projections in Windows Runtime 3m
- Inspecting WinMD Components 5m
- Windows Runtime Asynchrony and Events 4m
- Under the Hood of WinRT Event Handling 4m
- Summary 2m