type - inicializar variable tipo var c#
Inicializando un ''var'' a nulo (2)
Creo que no , ya que no hay diferencia en la IL compilada.
var x = null as object;
var x1 = (object)null;
object x2 = null;
se compila a
IL_0001: ldnull
IL_0002: stloc.0 // x
IL_0003: ldnull
IL_0004: stloc.1 // x1
IL_0005: ldnull
IL_0006: stloc.2 // x2
Puede ver que todos los locales se inicializan en nulo utilizando ldnull
opcode ldnull
, por lo que no hay diferencia.
¿Hay alguna diferencia en el rendimiento en tiempo de ejecución entre las siguientes inicializaciones de variables?
var x = null as object;
var x = (object)null;
object x = null;
En primer lugar: No, creo que estas tres llamadas son esencialmente equivalentes.
En segundo lugar: incluso si hubiera alguna diferencia entre ellos, seguramente sería tan minúsculo que sería completamente irrelevante en una aplicación.
Esta es una pieza tan pequeña de cualquier programa, que enfocarse en la optimización aquí y en situaciones similares, a menudo será una pérdida de tiempo y, en algunos casos, puede complicar su código sin ninguna razón.
Hay una discusión más larga e interesante sobre esto en el sitio programmers.stackexchange .