في لغة C#، تُعتبر أنواع البيانات (Data Types) أساسًا هامًا جدًا، حيث تُحدد نوع القيم التي يمكن تخزينها في متغير ما، وكيفية التعامل مع هذه القيم. تُقسم أنواع البيانات في C# بشكل رئيسي إلى قسمين: أنواع القيم (Value Types) وأنواع المراجع (Reference Types).
1. أنواع القيم (Value Types):
تُخزن أنواع القيم البيانات مباشرةً في الذاكرة. عند نسخ متغير من نوع قيمة إلى آخر، يتم نسخ القيمة الفعلية. تشمل أنواع القيم ما يلي:
- أنواع البيانات البسيطة (Simple Types):
- الأعداد الصحيحة (Integers):
int
: عدد صحيح 32 بت.short
: عدد صحيح 16 بت.long
: عدد صحيح 64 بت.byte
: عدد صحيح 8 بت بدون إشارة (موجب فقط).sbyte
: عدد صحيح 8 بت بإشارة (موجب وسالب).uint
: عدد صحيح 32 بت بدون إشارة.ushort
: عدد صحيح 16 بت بدون إشارة.ulong
: عدد صحيح 64 بت بدون إشارة.
- أعداد الفاصلة العائمة (Floating-Point Numbers):
float
: عدد فاصلة عائمة 32 بت.double
: عدد فاصلة عائمة 64 بت.
- العدد العشري (Decimal):
decimal
: عدد عشري 128 بت، يُستخدم في العمليات المالية والحسابات التي تتطلب دقة عالية.
- المحرف (Character):
char
: محرف Unicode 16 بت.
- المنطقي (Boolean):
bool
: قيمة منطقية، إماtrue
(صحيح) أوfalse
(خاطئ).
- أنواع التعداد (Enum Types):
- تُمثل مجموعة من الثوابت المُسماة.
- أنواع الهياكل (Struct Types):
- تُمكن من إنشاء أنواع بيانات مُخصصة تجمع بين عدة أنواع بيانات أخرى.
- أنواع القيم القابلة للقيم الخالية (Nullable Value Types):
- تسمح لأنواع القيم بأخذ القيمة
null
بالإضافة إلى قيمها العادية. تُكتب باستخدام علامة الاستفهام?
بعد نوع البيانات، مثلint?
.
- تسمح لأنواع القيم بأخذ القيمة
2. أنواع المراجع (Reference Types):
لا تُخزن أنواع المراجع البيانات مباشرةً، بل تُخزن مرجعًا (عنوانًا) إلى مكان تخزين البيانات في الذاكرة. عند نسخ متغير من نوع مرجع إلى آخر، يتم نسخ المرجع فقط، وليس البيانات الفعلية. هذا يعني أن كلا المتغيرين سيُشيران إلى نفس مكان البيانات في الذاكرة. تشمل أنواع المراجع ما يلي:
- أنواع الأصناف (Class Types):
- تُعتبر اللبنة الأساسية في البرمجة الكائنية في C#.
- أنواع الواجهات (Interface Types):
- تُحدد عقدًا يجب على الأصناف تنفيذه.
- أنواع المفوضين (Delegate Types):
- تُستخدم لتمرير الدوال كمعاملات إلى دوال أخرى.
- أنواع المصفوفات (Array Types):
- تُخزن مجموعة من العناصر من نفس نوع البيانات.
- نوع السلسلة النصية (String):
- يُمثل سلسلة من المحارف.
- نوع الكائن (Object):
- يُعتبر النوع الأساسي لجميع الأنواع في C#.
مثال توضيحي:
// أنواع قيمint x = 10;int y = x; // يتم نسخ قيمة x إلى y (y = 10)
// أنواع مراجعstring name1 = "Ahmed";string name2 = name1; // يتم نسخ مرجع name1 إلى name2name2 = "Ali"; // تغيير قيمة name2 سيؤثر على name1 أيضًا (كلاهما يشير الآن إلى "Ali")
Console.WriteLine(x); // Output: 10Console.WriteLine(y); // Output: 10Console.WriteLine(name1); // Output: AliConsole.WriteLine(name2); // Output: Ali
ملخص أنواع البيانات في C#:
نوع البيانات | وصف | مثال |
---|---|---|
int | عدد صحيح 32 بت | int age = 25; |
double | عدد فاصلة عائمة 64 بت | double price = 19.99; |
bool | قيمة منطقية (true أو false ) | bool isStudent = true; |
string | سلسلة نصية | string name = "John Doe"; |
char | محرف Unicode 16 بت | char initial = 'J'; |
decimal | عدد عشري 128 بت | decimal salary = 5000.50m; |