أنواع البيانات Data Types
-
تستخدم أنواع البيانات Data Type لتحديد أنواع وأحجام المتغيرات variable والتي يمكن للمتغير تخزينها مثل الأعداد الصحيحة integer و floatingو character وما إلى ذلك.
من المهم استخدام نوع البيانات data type الصحيح للمتغير variable؛ لتجنب الأخطاء، ولتوفير الوقت والذاكرة، وبالتالي استخدام النوع الصحيح يجعل الأكواد البرمجية الخاصة بك أكثر قابلية للصيانة والقراءة.
تحتوي لفة C# على 3 أنواع من أنواع البيانات (الجدول التالي يوضح هذه الأنواع)
Data Types | Types |
short, int, char, float, double etc | Value Data Type نوع البيانات بالقيمة |
String, Class, Object and Interface | Reference Data Type نوع البيانات بالمرجع |
Pointer Data Type نوع البيانات بالمؤشر |
تمام نحكي هن هذه الأنواع بالتفصيل.
Value Data Type
أنواع البيانات بالقيمة هي الأعداد الصحيحة integer والفاصلة العائمة floating. تدعم لغة C# كلا من الأحرف الموقعة وغير الموقعة signed and unsigned literals.
وهذا النوع يحتوي على نوعين هما
- أنواع البيانات المحددة مسبقًا Predefined Data Types - مثل عدد صحيح Integer، ومنطقي Boolean، وعائم Float ... الخ.
- أنواع البيانات التي يحددها المستخدم User defined Data Types- مثل البنية Structure والتعدادات Enumerations وما إلى ذلك.
قد يتغير حجم ذاكرة memory size أنواع البيانات data types حسب نظام التشغيل 32 أو 64 بت.
الجدول التالي يوضح انواع البيانات المحددة مسبقا

أكثر هذه الأنواع استخداما وشيوعا

تمام نشوف امثلة على هذه الأنواع
الاعداد Numbers
ينقسم هذا النوع الى مجموعتين:
- الأعداد الصحيحة Integer types
يستخدم لتخزين الأعداد الصحيحة numbers، سواء كانت موجبة أو سالبة (مثل 123 أو -456)، بدون أرقام عشرية. وهذه الأنواع:
int ,long.
واكيد طريقة الاستخدام تعتمد على القيمة الرقمية.
- الأنواع العائمة Floating
يستخدم لتخزين الأرقام الكسرية، بحيث تحتوي على رقم عشري واحد أو أكثر decimals. وهذه الأنواع هي:
float , double
الأنواع الأكثر استخدامًا للأرقام هي int (للأرقام الصحيحة) وdouble (للأرقام الفاصلة العائمة).
أمثلة
الأعداد الصحيحة من نوع Integer Types
حكينا في هذا النوع int يمكن تخزين أرقام صحيحة من -2147483648 إلى 2147483647. بشكل عام،
اضف الكود التالي الى مشروعنا
namespace MyFisrtProgram
{
public class PrintHelloWorld
{
static void Main(string[] args)
{
int intNumberStart = -2147483647;
int intNumberEnd = 2147483647;
Console.WriteLine(intNumberStart);
Console.WriteLine(intNumberEnd);
}
}
}
شوف النتيجة هي طباعة اصغر واكبر قيمه مسموحه في هذا النوع
تمام جرب الان غير القيمة الأصغر او الأكبر
namespace MyFisrtProgram
{
public class PrintHelloWorld
{
static void Main(string[] args)
{
int intNumberStart = -21474836475;
int intNumberEnd = 21474836470;
Console.WriteLine(intNumberStart);
Console.WriteLine(intNumberEnd);
}
}
}
شغل البرنامج وشوف النتيجة.
اكيد بتكون النتيجة خطأ

الخطأ هو :
Cannot implicitly convert type 'long' to 'int'. An explicit conversion exists (are you missing a cast?)
سبب الخطأ ان القيمة المدخلة في المتغير اكبر من حدود النوع int .
الأعداد الصحيحة من نوع Long Types
في هذا النوع يمكن تخزين أرقام صحيحة من -9223372036854775808 إلى 9223372036854775807. يُستخدم هذا النوع عندما تكون القيم كبيره بحيث لا يمكن تخزينها في النوع int.
لاحظ أنه يجب عليك إنهاء القيمة بـ "L":
using static System.Net.Mime.MediaTypeNames;
namespace MyFisrtProgram
{
public class PrintHelloWorld
{
static void Main(string[] args)
{
long LongNumberStart = -9223372036854775808L;
long LongNumberEnd = 9223372036854775807L;
Console.WriteLine(LongNumberStart);
Console.WriteLine(LongNumberEnd);
}
}
}
النوع Floating Point
يستخدم هذا النوع عند الحاجه إلى رقم به علامة عشرية decimal، مثل 9.99 أو 3.14515.
يمكن لأنواع البيانات float وdouble تخزين الأرقام الكسرية fractional.
يجب عليك إنهاء القيمة بـ "F" ل floats و"D" ل doubles
مثال doubles:
using System;
using static System.Net.Mime.MediaTypeNames;
namespace MyFisrtProgram
{
public class PrintHelloWorld
{
static void Main(string[] args)
{
double doubleNumber =42.5D;
Console.WriteLine(doubleNumber);
}
}
}
النتيجة هي طباعة الرقم 42.5 على الشاشة
مثال floats
using System;
using static System.Net.Mime.MediaTypeNames;
namespace MyFisrtProgram
{
public class PrintHelloWorld
{
static void Main(string[] args)
{
float floatNumber =42.5F;
Console.WriteLine(floatNumber);
}
}
}
الفرق بين floats و doubles
الفريق بين النوعين هو في الحجم حيث ان تشير الدقة لكل نوع الى عدد الأرقام التي يمكن أن تحتويها القيمة بعد العلامة العشرية decimal point.
تبلغ دقة النوع float ستة أو سبعة أرقام عشرية فقط decimal digits ، بينما تبلغ دقة المتغيرات من نوع double حوالي 15 رقمًا. ولذلك فمن الأكثر أمانًا استخدام النوع double في معظم العمليات الحسابية.
القيم المنطقية Booleans
يستخدم هذا النوع عند الحاجة الى تعريف متغير يحتوي قيمتين فقط (نعم او لا true or false)
يتم الإعلان عن هذا النوع باستخدام الكلمة الأساسية bool
يستخدم هذا النوع في الغالب للاختبار الشرطي conditional testing
مثال
تعريف متغير لتحديد نوع الطالب هل هو دائم او مؤقت.
using System;
using static System.Net.Mime.MediaTypeNames;
namespace MyFisrtProgram
{
public class PrintHelloWorld
{
static void Main(string[] args)
{
Boolean IsTemp =true;
Console.WriteLine(IsTemp);
}
}
}
النتيجة طباعة قيم المتغير IsTemp على الشاشة
استخدام الحرف e مع النوع float
يمكن زيادة حجم النوع float عن طريق إضافة الحرف "e" للإشارة إلى قوة الرقم 10 (power of 10):
مثال:
using System;
using static System.Net.Mime.MediaTypeNames;
namespace MyFisrtProgram
{
public class PrintHelloWorld
{
static void Main(string[] args)
{
float floatnumber = 350e1F;
double doublenumber = 120E1D;
Console.WriteLine(floatnumber);
Console.WriteLine(doublenumber);
}
}
}
النتيجة هي طباعة الأرقام 3500 و 1200 على الشاشة
لاحظ السطر الأول:
float floatnumber = 350e1F;
هذا السطر يعني قيمة 350 * 10
الرقم 10 ناتج من المعامل e1. يعني العدد بعد الحرف e هو المسؤول عن تحديد الرقم
جرب تغير العدد بعد الحرق e وشوف النتيجة.
نفس الفكرة تماما بالنسبة ل double
النوع Characters
يستخدم هذا النوع لتخزين حرف واحد. يجب أن يكون الحرف محاطًا بعلامات اقتباس مفردة single quotes،
مثل
using System;
using static System.Net.Mime.MediaTypeNames;
namespace MyFisrtProgram
{
public class PrintHelloWorld
{
static void Main(string[] args)
{
char FirstCharName = 'H';
Console.WriteLine(FirstCharName);
}
}
}
نتيجة التنفيذ هي طباعة الحرف H على الشاشة
النوع Strings
يستخدم هذا النوع لتخزين سلسلة من الأحرف (النص text). يجب أن تكون قيم السلسلة محاطة بعلامات اقتباس مزدوجة:
مثال:
using System;
using static System.Net.Mime.MediaTypeNames;
namespace MyFisrtProgram
{
public class PrintHelloWorld
{
static void Main(string[] args)
{
string FullName = "Hatem al-talafha";
Console.WriteLine(FullName);
}
}
}
النتيجة هي طباعة الاسم Hatem al-talafha على الشاشة.
نوع البيانات المرجعية Reference Data Type
الفكرة من هذا النوع انها لا تحتوي على البيانات الفعلية المخزنة في المتغير، تحتوي فقط على مرجع للمتغيرات reference.
وبالتالي إذا تم تغيير البيانات بواسطة أحد المتغيرات variables، فإن المتغير الآخر يعكس تلقائيًا هذا التغيير في القيمة.
أنواع هذا النوع
1) الأنواع المحددة مسبقًا - Predefined مثل الكائنات Objects والسلسلة String.
2) الأنواع التي يحددها المستخدم User defined - مثل الفئات Classes والواجهات Interfaces.
بنحكي عن هذا النوع بالتفصيل في الدروس القادمة. المهم الان تعرف معلومة عامة .
نوع بيانات المؤشر Pointer Data Type
المؤشر pointer هو متغير variable يقوم بتخزين عنوان الذاكرة memory address لمتغير آخر كقيمة له value.
يشير متغير المؤشر pointer variable إلى نوع بيانات (مثل int) من نفس النوع، ويتم إنشاؤه باستخدام عامل التشغيل * operator.
ويعرف أيضًا باسم محدد المواقع locator أو المؤشر indicator الذي يشير إلى عنوان قيمة ما

الرموز المستخدمة

بنحكي عن هذا النوع بالتفصيل مستقبلا.
اترك تعليقك