اختر نوع البيانات المناسب
لقد تم تعريفك على الفرق بين أنواع القيم وأنواع المرجع، بالإضافة إلى الأنواع المتكاملة والنقطة العائمة.
افترض أن وظيفتك هي إنشاء تطبيق جديد يقوم باسترداد أنواع مختلفة من البيانات ومعالجتها وتخزينها. ما هي أنواع البيانات التي تستخدمها؟
في بعض الحالات، هو خيار سهل. على سبيل المثال، عندما تحتاج إلى العمل مع النص، فإنك تستخدم نوع البيانات افتراضيا string ما لم تكن بحاجة إلى تنفيذ قدر كبير من التسلسل.
ولكن ماذا عن العمل مع البيانات الرقمية؟ هناك 11 خيارًا مختلفًا. كيف تختار نوع البيانات المناسب؟
اختر نوع البيانات المناسب
مع العديد من أنواع البيانات للاختيار من بينها، ما هي المعايير التي يجب استخدامها لاختيار نوع البيانات المناسب للحالة المعينة؟
عند تقييم الخيارات الخاصة بك، يجب عليك أن تزن عدة اعتبارات هامة. عادة ما لا توجد إجابة واحدة صحيحة، ولكن بعض الإجابات أكثر صحة من غيرها.
اختر نوع البيانات الذي يفي بمتطلبات نطاق قيمة الحد للتطبيق الخاص بك
يمكن أن يساعد اختيارك لنوع البيانات في تعيين حدود لحجم البيانات التي قد تخزنها في هذا المتغير المحدد. على سبيل المثال، إذا كنت تعرف أن متغيرا معينا يجب أن يخزن رقما يتراوح بين 1 و10000 فقط وإلا فإنه خارج حدود ما يمكن توقعه، فمن المحتمل أن تتجنب byte ذلك sbyte وبما أن نطاقاتها منخفضة جدا.
علاوة على ذلك، من المحتمل ألا تحتاج إلى intو longuintو ulong لأنه يمكنهم تخزين بيانات أكثر مما هو ضروري. وبالمثل، من المحتمل أن تتخطى float، doubleو، وإذا decimal لم تكن بحاجة إلى قيم كسرية. يمكنك تضييقها إلى short و ushort، والتي قد يكون كلاهما قابلا للتطبيق. إذا كنت واثقا من أن القيمة السالبة لن يكون لها معنى في التطبيق الخاص بك، فقد تختار ushort (عدد صحيح موجب غير موقع، من 0 إلى 65535). الآن، أي قيمة تم تعيينها لمتغير من نوع ushort خارج حدود 0 إلى 65535 ستطرح استثناء، وبالتالي تساعدك بحرفية على فرض درجة من التحقق من السلامة في التطبيق الخاص بك.
ابدأ باختيار نوع البيانات لاحتواء البيانات (وليس لتحسين الأداء)
قد تميل إلى اختيار نوع البيانات الذي يستخدم أقل وحدات البت لتخزين البيانات مع التفكير في أنه يحسن أداء التطبيق الخاص بك. ومع ذلك، فإن بعض أفضل النصائح المتعلقة بأداء التطبيق (وهو، مدى سرعة تشغيل التطبيق الخاص بك) هو عدم "التحسين المبكر". يجب أن تقاوم إغراء التخمين في أجزاء التعليمات البرمجية الخاصة بك، بما في ذلك تحديد أنواع البيانات التي قد تؤثر على أداء التطبيق الخاص بك.
يفترض العديد أنه بسبب قيام نوع بيانات ما بتخزين معلومات أقل، فلا بد أنه يستخدم معالج كمبيوتر وذاكرة أقل من نوع بيانات الذي يخزن معلومات أكثر. وبدلاً من ذلك، يجب عليك اختيار الملاءمة المناسبة لبياناتك، ثم يمكنك لاحقًا قياس أداء التطبيق الخاص بك تجريبيًا باستخدام برامج خاصة توفر رؤى واقعية لأجزاء التطبيق التي تؤثر سلبًا على الأداء.
اختيار أنواع البيانات استنادا إلى أنواع بيانات الإدخال والإخراج لوظائف المكتبة المستخدمة
افترض أنك تريد العمل مع فترة من السنوات بين تاريخين. نظرا لأن التطبيق هو تطبيق عمل، فقد تحدد أنك تحتاج فقط إلى نطاق من حوالي 1960 إلى 2200. قد تفكر في محاولة العمل مع byte لأنه يمكن أن يمثل أرقاما بين 0 و255.
ومع ذلك، عندما تنظر إلى الأساليب المضمنة في System.TimeSpan الفئتين و System.DateTime ، تدرك أنها تقبل في الغالب قيم النوع double و int. إذا اخترت sbyte، فستلقي باستمرار ذهابا وإيابا بين byte و double أو int. في هذه الحالة، قد يكون من المنطقي أكثر اختيار int ما إذا كنت لا تحتاج إلى دقة ثانية فرعية، وإذا double كنت بحاجة إلى دقة ثانية فرعية.
اختيار أنواع البيانات استنادا إلى التأثير على الأنظمة الأخرى
في بعض الأحيان، يجب عليك مراعاة كيفية استهلاك المعلومات بواسطة تطبيقات أخرى أو أنظمة أخرى مثل قاعدة بيانات. على سبيل المثال، يختلف نظام من نوع SQL Server عن نظام من نوع C#. وكنتيجة لذلك، يجب أن يحدث بعض التخطيط بين الاثنين قبل أن تتمكن من حفظ البيانات في قاعدة البيانات تلك.
إذا كان الغرض من التطبيق الخاص بك هو الواجهة مع قاعدة بيانات، فمن المحتمل أن تحتاج إلى النظر في كيفية تخزين البيانات ومقدار البيانات المخزنة. قد يؤثر اختيار نوع بيانات أكبر على مقدار (وتكلفة) التخزين الفعلي المطلوب لتخزين جميع البيانات التي سينشئها تطبيقك.
عندما تكون في شك، التزم بالأساسيات
أثناء النظر في العديد من الاعتبارات، أثناء البدء، من أجل البساطة، يجب أن تفضل مجموعة فرعية من أنواع البيانات الأساسية، بما في ذلك:
-
intلمعظم الأرقام الصحيحة -
decimalللأرقام التي تمثل المال -
boolللقيم الحقيقية أو الخاطئة -
stringللقيمة الأبجدية الرقمية
اختيار أنواع معقدة متخصصة للحالات الخاصة
لا تقم بإعادة اختراع أنواع البيانات إذا كان نوع بيانات واحد أو أكثر موجودا بالفعل لغرض معين. تحدد الأمثلة التالية أين يمكن أن تكون أنواع بيانات .NET معينة مفيدة:
-
byte: العمل مع البيانات المشفرة التي تأتي من أنظمة كمبيوتر أخرى أو باستخدام مجموعات أحرف مختلفة. -
double: العمل مع أغراض هندسية أو علمية.doubleيستخدم بشكل متكرر عند إنشاء ألعاب تتضمن الحركة. -
System.DateTimeلقيمة تاريخ ووقت محددة. -
System.TimeSpanلمدة سنوات / أشهر / أيام / ساعات / دقائق / ثوان / مللي ثانية.
خلاصة
هناك اعتبارات عند اختيار أنواع البيانات للتعليمات البرمجية الخاصة بك، وغالبا ما يكون أكثر من خيار واحد. فكر في اختياراتك، وما لم يكن لديك سبب وجيه، فحاول الالتزام بالأنواع الأساسية مثل intو decimalstringو وbool.