ஒரு வகை தரவுகளின் தொகுப்பாகவும் அவற்றில் நிகழ்த்தப்படும் செயல்பாடுகளாகவும் வரையறுக்கப்படுகிறது.C# ஒரு வலுவான தட்டச்சு செய்யப்பட்ட மொழி. C# வகை அமைப்பு மூன்று வகை வகைகளைக் கொண்டுள்ளது. அவை
- மதிப்பு வகைகள்
- குறிப்பு வகைகள்
- சுட்டிக்காட்டி வகைகள்.
மதிப்பு வகைகள் தரவைச் சேமிக்கும்போது, குறிப்பு வகைகள் உண்மையான தரவைக் குறிக்கும்.
சுட்டிக்காட்டி வகைகள் மாறி(variable) பயன்பாடு பாதுகாப்பற்ற பயன்முறையில் மட்டுமே.
System.ValueType இலிருந்து பெறப்பட்ட மதிப்பு வகைகள் மற்றும் System.Object இலிருந்து பெறப்பட்ட குறிப்பு வகைகள்.
மதிப்பு வகைகள் மற்றும் குறிப்பு வகைகளுக்கு இடையிலான முக்கிய வேறுபாடு என்னவென்றால், இந்த வகைகள் எவ்வாறு மதிப்புகளை நினைவகத்தில் சேமிக்கின்றன.
பொதுவான மொழி இயக்க நேரம் (CLR) ஸ்டேக் மற்றும் ஹீப்பில் நினைவகத்தை ஒதுக்குகிறது.
ஒரு மதிப்பு வகை அதன் உண்மையான மதிப்பை பொருள்களாக குறிப்பிடப்படும் அடுக்கு மற்றும் குறிப்பு வகைகளில் ஒதுக்கப்பட்ட நினைவகத்தில் வைத்திருக்கிறது, உண்மையான தரவுகளுக்கான குறிப்புகளை சேமிக்கிறது.
C# இல், ஒரு வகையின் மதிப்பை மற்றொரு வகையின் மதிப்பாக மாற்ற முடியும்.
மதிப்பு வகையை குறிப்பு வகையாக மாற்றுவதற்கான செயல்பாடு பாக்ஸிங் என்றும் தலைகீழ் செயல்பாடு அன் பாக்ஸிங் என்றும் அழைக்கப்படுகிறது.