c# - معنى - ما هو الفرق بين int و Int16 و Int32 و Int64؟




معنى كاتب بالانجليزي (7)

  1. int و int32 هي واحدة واحدة (عدد صحيح 32 بت)
  2. int16 قصير int (2 بايت أو 16 بت)
  3. int64 هو نوع البيانات الطويل (8 بايت أو 64 بت)

ما هو الفرق بين int و System.Int16 و System.Int32 و System.Int64 غير أحجامها؟


الفرق الحقيقي الوحيد هنا هو الحجم. جميع أنواع int هنا هي قيم عددية مُوقعة ذات أحجام مختلفة

  • Int16 : 2 بايت
  • Int32 و int : 4 بايت
  • Int64 : 8 بايت

هناك اختلاف صغير واحد بين Int64 والباقي. لا يمكن ضمان Int64 النظام الأساسي 32 بت على موقع نظام تخزين Int64 . مضمونة لجميع الأنواع الأخرى.


كلاهما مترادفان بالفعل ، لكنني وجدت الفرق الصغير بينهما ،

1) لا يمكنك استخدام Int32 أثناء إنشاء enum

enum Test : Int32
{ XXX = 1   // gives you compilation error
}

enum Test : int
{ XXX = 1   // Works fine
}

2) تأتي Int32 تحت إعلان النظام. إذا قمت بإزالة using.System سوف تحصل على خطأ تجميع ولكن ليس في حالة int


لا شيئ. والفرق الوحيد بين الأنواع هو حجمها (وبالتالي ، نطاق القيم التي يمكنها تمثيلها).


وفقًا لجيفري ريختر (أحد المساهمين في تطوير .NET framework) ، فإن 'CLR عبر C #':

int هو نوع بدائي يسمح به برنامج التحويل البرمجي C # ، في حين أن Int32 هو نوع مكتبة Class Framework (متوفر عبر اللغات التي تلتزم بها CLS). في الحقيقة ، int يترجم إلى Int32 أثناء التحويل البرمجي.

أيضا،

في C # ، خرائط طويلة إلى System.Int64 ، ولكن في لغة برمجة مختلفة ، يمكن تعيين طويلة إلى Int16 أو Int32. في الحقيقة ، C ++ / CLI تعامل طويلة كـ Int32.

في الواقع ، لن تعامل معظم لغات (. NET) حتى كلمة رئيسية طويلة ولن تقوم بتجميع التعليمات البرمجية التي تستخدمها.

لقد رأيت هذا المؤلف ، والعديد من المؤلفات القياسية على. NET تفضيل أنواع FCL (أي Int32) إلى الأنواع البدائية الخاصة باللغات (أي int) ، بشكل أساسي على مخاوف قابلية التشغيل البيني هذه.


يحتوي كل نوع من أنواع الأعداد الصحيحة على نطاق مختلف من السعة التخزينية

   Type      Capacity

   Int16 -- (-32,768 to +32,767)

   Int32 -- (-2,147,483,648 to +2,147,483,647)

   Int64 -- (-9,223,372,036,854,775,808 to +9,223,372,036,854,775,807)

كما ذكر جيمس ساذرلاند في إجابته :

int و Int32 هي بالفعل مرادفة؛ int سوف يكون أكثر مألوفة ، Int32 يجعل 32-bitness أكثر صراحة لأولئك قراءة التعليمات البرمجية الخاصة بك. سوف أميل إلى استخدام int حيث أحتاج فقط إلى "عدد صحيح" ، Int32 حيث يكون الحجم مهمًا (رمز التشفير والبنى) حتى يعلم مشرفو المستقبل أنه من الآمن توسيع int إذا كان ذلك مناسبًا ، ولكن يجب Int32 تغيير المتغيرات Int32 في نفس الطريقة.

ستكون الشفرة الناتجة مطابقة: الاختلاف هو بحت واحد من إمكانية القراءة أو مظهر الشفرة.


Int = Int32 -> النوع الطويل الأصلي

Int16 -> int أصلي

Int64 -> يصبح نوع البيانات الجديد متاحًا بعد أنظمة 64 بت

"int" متوفر فقط للتوافق مع الإصدارات السابقة. يجب أن نكون حقاً نستخدم أنواع جديدة من البرامج لجعل برامجنا أكثر دقة.

---------------

شيء آخر لاحظته على طول الطريق هو عدم وجود فئة تسمى Int to Int16 و Int32 و Int64. جميع الوظائف المفيدة مثل TryParse لعدد صحيح تأتي من Int32.TryParse .





.net