C# வகை அமைப்பில் மூன்று வகைகள் உள்ளன, அவை மதிப்பு வகைகள், குறிப்பு வகைகள் மற்றும் சுட்டிக்காட்டி வகைகள்.C# ஒரு மதிப்பு வகையை குறிப்பு வகையாக மாற்றவும், மீண்டும் மதிப்பு வகைகளுக்கு மாற்றவும் அனுமதிக்கிறது.மதிப்பு வகையை குறிப்பு வகையாக மாற்றுவதற்கான செயல்பாடு பாக்ஸிங் என்றும் தலைகீழ் செயல்பாடு அன் பாக்ஸிங் என்றும் அழைக்கப்படுகிறது.
பாக்ஸிங்
int num= 1;
Object Obj = num; //Boxing
முதல் வரியில் ஒரு மதிப்பு வகை num ஐ உருவாக்கி, numக்கு மதிப்பை ஒதுக்கினோம்.இரண்டாவது வரியில், ஆப்ஜெக்ட் Obj ஒரு நிகழ்வை உருவாக்கி, num மதிப்பை Obj க்கு ஒதுக்குகிறோம்.
மேலே உள்ள செயல்பாட்டிலிருந்து (Object Obj = i) ஒரு மதிப்பு வகையின் மதிப்பை தொடர்புடைய குறிப்பு வகையின் மதிப்பாக மாற்றுவதைக் கண்டோம்.இந்த வகையான செயல்பாடு பாக்ஸிங் என்று அழைக்கப்படுகிறது.
அன் பாக்ஸிங்
int num= 1;
Object Obj = num; //Boxing
int i = (int)Obj; //Unboxing
முதல் இரண்டு வரி ஒரு மதிப்பு வகையை எவ்வாறு Box செய்வது என்பதைக் காட்டுகிறது.அடுத்த வரி (int i = (int) Obj) Object லிருந்து மதிப்பு வகையை பிரித்தெடுக்கிறது.
இது ஒரு குறிப்பு வகையின் மதிப்பை மதிப்பு வகையின் மதிப்பாக மாற்றுகிறது.இந்த செயல்பாடு அன் பாக்ஸிங் என்று அழைக்கப்படுகிறது.
பாக்ஸிங் மற்றும் அன் பாக்ஸிங் ஆகியவை கணக்கீட்டு ரீதியாக விலை உயர்ந்த செயல்முறைகள்.ஒரு மதிப்பு வகை பெட்டியில் இருக்கும்போது, முற்றிலும் புதிய பொருளை ஒதுக்கி கட்டமைக்க வேண்டும், மேலும் அன் பாக்ஸிங்கிற்கு தேவையான cast ம் கணக்கீட்டு ரீதியாக விலை அதிகம்.
using System; using System.Windows.Forms; namespace WindowsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { int num= 1; Object Obj = num; //Boxing int i = (int)Obj; //Unboxing MessageBox.Show("The number is : " + i); } } }