Articles of unboxing

Unboxing se produit-il lorsqu’un membre du type valeur de la classe est référencé?

Je lis Qu’est-ce que la boxe et le déballage et quels sont les avantages? mais je ne peux pas comprendre une chose. Supposons que j’ai une classe: class MyClass { public int Value { get; set; } } Et je veux obtenir de la valeur dans ma méthode: void MyFunc(MyClass cls) { int i = […]

Pourquoi les enumis unboxing donnent-ils des résultats étranges?

Considérer ce qui suit:: Object box = 5; int @int = (int)box; // int = 5 int? nullableInt = box as int?; // nullableInt = 5; SsortingngComparison @enum = (SsortingngComparison)box; // enum = OrdinalIgnoreCase SsortingngComparison? nullableEnum = box as SsortingngComparison?; // nullableEnum = null. 2 choses :: Pourquoi puis-je décompresser dans SsortingngComparison J’imagine que c’est […]

Comparaisons de type de valeur en boîte

Ce que je tente d’obtenir ici est une comparaison directe des valeurs des types primitifs en boîte. ((object)12).Equals((object)12); // Type match will result in a value comparison, ((object)12).Equals((object)12d); // but a type mismatch will not. (false) object.Equals((object)12,(object)12d); // Same here. (false) Je comprends le “pourquoi”. Je ne vois tout simplement pas comment. Les types sont […]

Boxing et unboxing lors de l’utilisation des parameters out et ref

Est-ce qu’il y a boxing / unboxing quand une méthode accepte un paramètre out / ref d’un ValueType?

Box et UnBox, qu’est-ce que cela signifie?

Doublons possibles: Pourquoi avons-nous besoin de boxe et de déballage en C #? Qu’est-ce que la boxe et le déballage et quels sont les compromis? En C #, que veut dire sit: “Box and UnBox”? Voici un extrait de MSDN où j’ai fondé le texte. Mais cette commodité a un coût. Toute référence ou type […]

Boxe vs Unboxing

Une autre question récente de mon entretien avec C # était celle de savoir si je savais ce que sont la boxe et l’unboxing. J’ai expliqué que les types de valeur sont sur les types de stack et de référence sur les tas. Lorsqu’une valeur est convertie en un type de référence, nous l’appelons boxing […]

Est-ce que valueType.ToSsortingng () fait un cast sur le valueType?

Disons que j’ai le code suivant en c # int x = 0; x.ToSsortingng(); Est-ce que cela fait intérieurement une boxe de x? Y a-t-il un moyen de voir cela se passer depuis Visual Studio?

Comment décompresser d’un object à un autre qu’il contient, sans savoir ce type lors de la compilation?

Au moment de l’exécution, j’obtiens une instance de type quelconque. Comment décompresser le type sous-jacent? Object obj; Ssortingng variable = “Some text”; obj = variable // boxing; // explicit unboxing, because we know the type of variable at comstack time. var x = (Ssortingng)obj // Now let’s pretend that we don’t know the type of […]

Le fait de passer un type de valeur dans un paramètre «out» entraîne-t-il la mise en boîte de la variable?

Je suis conscient que la boxe et le déballage sont relativement coûteux en termes de performances. Ce que je me demande c’est: Le fait de passer un type de valeur au paramètre out une méthode provoque-t-il la boxing / unboxing de la variable (et donc un impact négatif sur les performances)? Le compilateur peut-il optimiser […]

Pourquoi ne puis-je pas modifier le résultat d’une conversion unboxing?

struct Point { public int x; public int y; } void Main() { Point p; px = 1; py = 1; Object o = p; ((Point) o).x = 4; // error ((Point) o).x = 5; // error ((Point) o).x = 6; // error p = (Point) o // expect 6 } Pourquoi ne comstack-t-il pas […]