Estaba participando en la pregunta de desbordamiento de pila Is everything in .NET an object?.¿Llamar a un método en un tipo de valor resulta en el boxeo en .NET?
Y un cartel (en los comentarios de la respuesta aceptada) parecía pensar que realizar una llamada a un método en un tipo de valor dio como resultado el boxeo. Me señaló Boxing and Unboxing (C# Programming Guide) que no especifica exactamente el caso de uso que estamos describiendo.
No soy de los que confían en una sola fuente, así que solo quería obtener más comentarios sobre la cuestión. Mi intuición es que no hay boxeo, pero mi intuición apesta. : D
elaborar más:
El ejemplo que utilicé fue: hace
int x = 5;
string s = x.ToString(); // Boxing??
boxeo no ocurrir si la estructura en cuestión reemplaza el método heredado del objeto como la respuesta aceptada aquí estados.
Sin embargo, si la estructura no anula el método, se ejecuta un comando "constrain" CIL antes de un callvirt. Según la documentación, OpCodes.Constrained Field, esto se traduce en el boxeo:
Si thisType es un tipo de valor y thisType no implementa el método entonces PTR se eliminan las referencias, en caja, y pasa como el 'presente 'puntero a la instrucción del método callvirt .
Y la razón aquí: http://stackoverflow.com/questions/1359856/why-does-implicitly-calling-tostring-on-a-value-type-cause-a-box-instruction – nawfal