Advanced
MSIL for the C# Developer
By Filip Ekberg
Get an understanding of what your daily programming generates by understanding MSIL.
Course info
Rating
Level
Intermediate

Updated
Jun 14, 2013

Duration
2h 34m

Table of contents
MSIL for the C# Developer Introduction
Compiling C#
What is a compiler?
1m
What happens when we run a C# Application?
1m
What is MSIL?
1m
Decompiling a C# Application and viewing MSIL
2m
The basic OpCodes and how to spot them when decompiled
3m
Summary
1m
Understanding IL and the Evaluation Stack
The structure of MSIL
1m
What is a Stack?
4m
Analyze a method
5m
What the method really looks like
2m
Calling methods
1m
Understanding Recursion
5m
Summary
2m
Building things at runtime
What is Reflection?
1m
Why should I avoid Reflection?
1m
Using Reflection to get information in runtime
6m
Why create things in runtime?
2m
A first look at DynamicMethod and MSIL in a C# Application
11m
Convert a basic C# method to MSIL
9m
Comparing our MSIL to a disassembled snippet
2m
Converting a method line by line to MSIL
11m
Converting a method line by line to MSIL part 2
3m
Summary
2m
Building Things at Runtime Part 2
Building More Things in Runtime
0m
Calling Methods
4m
Calling Dynamic Methods
5m
Recursive Methods
9m
Using a Switch
8m
Creating A Type With TypeBuilder
10m
Summary
2m
Understanding the Different OpCodes
More Operation Codes Ahead
0m
What happens when we host the Dynamic Method anonymously?
4m
Getting the Remainder of a Division
1m
Negating Values
1m
Using Bitwise Operations
3m
Creating an Instance of A Class
2m
Loading Elements From an Array
3m
Summary
1m
Compiling your own IL
MSIL Outside Visual Studio
2m
The IL Dissassembler
2m
Calling Console.WriteLine
3m
Using Arguments Passed to Our Program
2m
Conversion, Value Types and Boxing
4m
Creating an Entire Type Using MSIL
6m
Summary
1m
Wrap Up
Description
Course info
Rating
Level
Intermediate

Updated
Jun 14, 2013

Duration
2h 34m

Description
In this course we look at MSIL; the code that is generated when you compile C#. We explore MSIL so that you get a better understanding of how C# works and how it is compiled.
About the author