Search code examples
c#nullvar

Initializing a 'var' to null


Is there any difference in runtime performance between the following variable initializations?

var    x = null as object;
var    x = (object) null;
object x = null;

Solution

  • I believe no, since there is no difference in compiled IL.

    var    x = null as object;
    var    x1 = (object)null;
    object x2 = null;
    

    gets compiled to

    IL_0001:  ldnull      
    IL_0002:  stloc.0     // x
    IL_0003:  ldnull      
    IL_0004:  stloc.1     // x1
    IL_0005:  ldnull      
    IL_0006:  stloc.2     // x2
    

    You can see all the locals are initialized to null using ldnull opcode only, so there is no difference.