MyPage is a personalized page based on your interests.The page is customized to help you to find content that matters you the most.

I'm not curious

C# Language Internals - Part 2

Course Summary

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

  • +

    Course Syllabus

    ● Investigating Iterators
        ◦ Introducing Iterators
        ◦ The State Machine Behind Iterators
        ◦ Looking at a Simple Iterator in ILSpy
        ◦ Iterators Returning IEnumerable
        ◦ Object Lifetimes in Iterators
        ◦ Analyzing Space Leaks With SOS
        ◦ Tidbits About Iterators
        ◦ Building a LINQ Debugger Using Iterators
        ◦ Summary
    ● Asynchronous Methods
        ◦ Recap of Asynchronous Methods
        ◦ Asynchronous Method Builders
        ◦ Under the Hood of Asynchronous Method Builders
        ◦ The Role of Await Expressions
        ◦ Revisiting the Awaiter Pattern
        ◦ The Compilation of Await Expressions
        ◦ Stack Spilling Explained
        ◦ Demonstrating Stack Spilling
        ◦ Summary
    ● Expression Trees
        ◦ Expression Tree Essentials
        ◦ Code Generated for Expression Trees
        ◦ LINQ Query Providers
        ◦ Building a Simple Query Provider
        ◦ Code Generation Using Expression Trees
        ◦ Inspecting Lightweight Code Generation in SOS
        ◦ Tidbits About Expression Trees
        ◦ Building the InfoOf Operator
        ◦ Summary
    ● Dynamic Programming in C#
        ◦ Introduction to C# Dynamic
        ◦ Dynamic Interop With IronPython
        ◦ The Role of Language Binders
        ◦ Spotting Language Binders in ILSpy
        ◦ Call Sites and Caching
        ◦ Inspecting Call Sites Caches Using SOS
        ◦ Dynamic Quirks
        ◦ Summary
    ● Hidden Gems in System.Runtime.CompilerServices
        ◦ Overview of the System.Runtime.CompilerServices Namespace
        ◦ Introducing the ConditionalWeakTable Type
        ◦ Object Lifetimes in ConditionalWeakTable Collections
        ◦ Building Extension Properties using ConditionalWeakTable
        ◦ Using MethodImplAttribute
        ◦ Influencing Inlining Using MethodImplOptions
        ◦ The IndexerNameAttribute Type
        ◦ Getting to Know Caller Info Attributes
        ◦ Under the Hood of Caller Info Attributes
        ◦ Summary
    ● COM Interop, No PIA, and WinRT
        ◦ COM Interop and the History of PIAs
        ◦ Basics of Using No PIA
        ◦ Behind the Scenes of No PIA
        ◦ Using No PIA Across Class Libraries
        ◦ Windows Runtime Essentials
        ◦ Type Projections in Windows Runtime
        ◦ Inspecting WinMD Components
        ◦ Windows Runtime Asynchrony and Events
        ◦ Under the Hood of WinRT Event Handling
        ◦ Summary
    ● Not-So Secret Language Features
        ◦ Revisiting the CLR Type System
        ◦ The Danger of Pointers
        ◦ Unsafe C# Code
        ◦ Introducing Typed References
        ◦ Creating Typed References
        ◦ Dereferencing Typed References
        ◦ Using Typed References
        ◦ Variable Length Argument Lists
        ◦ Summary

Course Fee:
USD 29

Course Type:


Course Status:



1 - 4 hours / week

This course is listed under Open Source , Development & Implementations and Operating Systems Community

Attended this course?

Back to Top

Awards & Accolades for MyTechLogy
Winner of
Top 100 Asia
Finalist at SiTF Awards 2014 under the category Best Social & Community Product
Finalist at HR Vendor of the Year 2015 Awards under the category Best Learning Management System
Finalist at HR Vendor of the Year 2015 Awards under the category Best Talent Management Software
Hidden Image Url

Back to Top