ulong (مرجع #C)

تشير الكلمة الأساسية ulong إلى نوع بيانات لا يتجزأ ويخزن القيم وفقا للحجم والنطاق كما هو موضح في الجدول التالي.

Type

النطاق

Size

نوع .NET framework

ulong

من 0 إلى 18,446,744,073,709,551,615

عدد صحيح غير موقّع يتكون من 64 بت

System.UInt64

القيم الحرفية

يمكنك تعريف وتهيئة متغير من نوع ulong مثل هذا المثال:

ulong uLong = 9223372036854775808;

عندما لا يكون للعدد الصحيح الحرفي حرف لاحق، يكون نوعه هو أول نوع من هذه الأنواع التي يمكن تمثيل قيمتها فيه: int، uint، long, ulong. في المثال أعلاه يكون من النوع ulong.

يمكنك أيضاً استخدام أحرف لاحقة لتحديد نوع القيمة الحرفية استناداً إلى القواعد التالية:

  • إذا استخدمت L أو l نوع القيمة الحرفية سيكون إما long أو ulong استناداً إلى حجمه.

    ملاحظة

    يمكنك استخدام الحرف الصغير "l" كحرف لاحق. على الرغم من ذلك، هذا ينشئ رسالة تحذير في المحول البرمجي لأنه يتم خلط حرف "l" بسهولة مع الرقم "1". استخدم "L" للتوضيح.

  • إذا استخدمت U أو u، نوع القيمة الحرفية سيكون إما uint أو ulong استناداً إلى حجمه.

  • إذا استخدمت UL أو ul أو Ul أو uL أو LU أو lu أو Lu أو lU سيكون نوع العدد الصحيح الحرفي ulong.

    على سبيل المثال، سيكون إخراج العبارات الثلاثة التالية نوع النظام UInt64، الذي يتوافق مع الاسم المستعار ulong:

    Console.WriteLine(9223372036854775808L.GetType());
    Console.WriteLine(123UL.GetType());
    Console.WriteLine((123UL + 456).GetType());
    

أحد الاستخدامات الشائعة للأحرف اللاحقة هو استدعاء الأساليب التي تم التحميل الزائد لها. على سبيل المثال، خذ بعين الاعتبار، الأساليب التالية التي تم التحميل الزائد لها التي تستخدم معلمات ulong و عدد صحيح:

public static void SampleMethod(int i) {}
public static void SampleMethod(ulong l) {}

استخدام الحرف اللاحق مع معلمة ulong يضمن استدعاء النوع الصحيح، على سبيل المثال:

SampleMethod(5);    // Calling the method with the int parameter
SampleMethod(5UL);  // Calling the method with the ulong parameter

التحويلات

يوجد هناك تحويل ضمني معرّف مسبقاً من ulong إلى float أو double أو decimal.

لا يوجد أي تحويل ضمني من ulong إلى أي نوع أساسي. على سبيل المثال، سوف تعطي العبارة التالية خطأ في التحويل البرمجي مالم يتم استخدام تحويل (cast) صريح:

long long1 = 8UL;   // Error: no implicit conversion from ulong

هناك تحويل ضمني معرف مسبقاً من byte أو ushort أو uint أو char إلى ulong.

أيضاً، لا توجد أية تحويلات ضمنية من أنواع الفاصلة العائمة إلى ulong. على سبيل المثال، تضمن العبارة التالية وجود خطأ في المحول البرمجي ما لم يتم استخدام تحويل (cast) صريح:

// Error -- no implicit conversion from double:
ulong x = 3.0;
// OK -- explicit conversion:
ulong y = (ulong)3.0;  

للحصول على معلومات حول التعابير الحسابية مع أنواع الفاصلة العائمة المختلطة والأنواع الأساسية، راجع عائم و مزدوج.

لمزيد من المعلومات حول قواعد التحويل الرقمي الضمني، راجع جدول التحويلات الرقمية الواضحة (مرجع #C).

مواصفات لغة #C

لمزيد من المعلومات، راجع مواصفات لغة #C. مواصفات اللغة هي المصدر النهائي لبناء جملة C# واستخدامها.

راجع أيضًا:

المرجع

الكلمات الأساسية لـ #C

جدول الأنواع المتكاملة (مرجع C#)

جدول الأنواع المضمنة (مرجع C#)

جدول التحويلات الرقمية الواضحة (مرجع #C)

جدول التحويلات الرقمية الواضحة (مرجع #C)

UInt64

المبادئ

دليل البرمجة لـ #C

موارد أخرى

مرجع C#‎