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 = […]
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 […]
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 […]
Est-ce qu’il y a boxing / unboxing quand une méthode accepte un paramètre out / ref d’un ValueType?
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 […]
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 […]
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?
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 […]
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 […]
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 […]