2010-06-30 5 views

Antwort

11

Diese Seite bezieht sich auf, wenn Sie die Struktur Nullable<T> boxen, nicht die Werte innerhalb der Struktur selbst.

Es gibt keine Boxen in Speichern eines Nullable Types beteiligt, bis Sie Boxen die NULL-Werte zulassen versuchen selbst:

int? a = 42; // no boxing 
int? n = null; // no boxing 

object nObj = n; // no boxing 
object aObj = a; // only now will boxing occur 

Dieses Verhalten ist nicht anders als bei Verwendung einer normalen Werttyp Boxen (mit Ausnahme der Null-Sachbearbeitung) so ist es wirklich zu erwarten.

2

Das ist nicht der Fall. Nullable<T> ist generisch, so dass es die echte int oder bool enthält.

Die MSDN-Seite spricht darüber, was passiert, wenn Sie eine Nullable<int> oder Nullable<bool> Box. Wenn Sie Ihre Nullable-Struktur niemals einer object-Variablen zuweisen, entsteht kein Boxing-Overhead.

2

Nein. Das Nullable-Objekt ist eine generische Struktur und verarbeitet intern den Wert von T ohne Boxing.