Category Archives: c#

C# Behind the scenes – Local Functions

The second “Behind the scenes” article, will be about local function. This is much simple from previous post about yield keyword. In short, local function translated to a method of the class. Example 1

Posted in .NET, c# | Tagged , , , | 1 Comment

C# Behind the scenes – `yield`

The first “Behind the scenes” article will be about yield keyword. Lets take for example a very simple code that return numbers 1,2,3: The compiler translates this 4 lines code into an entire class.

Posted in .NET, c# | Tagged , , , , | 1 Comment

C# Behind the scenes

I see a lot of beginners programmers, but certainly not just beginners, who are not sure how things work in C#. I’m not talking about the CLR but about the language itself. And mostly specific on all sorts of keywords … Continue reading

Posted in .NET, c# | Tagged , , | 2 Comments

Mono.Cecil – Simplify and Optimize macros

You may have seen it, but what does it actually do? Do I need to add them? When we write IL macros, we emit instruction after instruction to the method body. Instruction, is operation to do (e.g. math operations, load\store, … Continue reading

Posted in .NET, c# | Tagged , , , , , | Leave a comment

Mono.Cecil – IAssemblyResolver

One of the important thing you need to know when you start to do real work with Cecil is the IAssemblyResolver The role of this interface, is to handle module resolving.

Posted in .NET, c# | Tagged , , , | Leave a comment

Mono.Cecil – Generics

Till now we saw an overview on Cecil and two simple examples. Today I want to show how you can handle generics in Cecil. For the example I’m going to use EqualityComparer<>

Posted in .NET, c# | Tagged , , , | Leave a comment

Value type methods – call, callvirt, constrained and hidden boxing

Long time ago I wrote a post here on  call vs callvirt and the needed of the this null check. Here I want to wrote about this topic but on value types. Look on these three ToString() calls:

Posted in .NET, c#, Roslyn | Tagged , , , , , , , | Leave a comment