Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

การชกมวยใน C # คืออะไร?


มวยแปลงประเภทค่าเป็นประเภทวัตถุ เรามาดูตัวอย่างมวยกัน −

int x = 50;
object ob = x; // boxing

ในการชกมวย ค่าที่เก็บไว้ในสแต็กจะถูกคัดลอกไปยังวัตถุที่เก็บไว้ในหน่วยความจำฮีป ในขณะที่การแกะกล่องจะตรงกันข้าม

การชกมวยมีประโยชน์ในการจัดเก็บประเภทค่าในฮีปที่เก็บขยะ เป็นการแปลงประเภทค่าโดยนัยให้เป็นวัตถุประเภท

เรามาดูตัวอย่างกัน −

ตัวอย่าง

using System;
using System.Collections.Generic;
using System.Linq;

public class Demo {

   static void Main() {
      int x = 50;
      object ob = x;

      x = 100;

      // The change in x won't affect the value of ob
      System.Console.WriteLine("Value Type = {0}", x);
      System.Console.WriteLine("Oject Type = {0}",ob);
   }
}

อย่างไรก็ตาม ใน Unboxing ค่าของอ็อบเจ็กต์ที่เก็บไว้ในหน่วยความจำฮีปจะถูกคัดลอกไปยังประเภทค่าที่จัดเก็บไว้ในสแต็ก มีการแปลงที่ชัดเจนในขณะที่การชกมวยมีการแปลงโดยนัย