ulong (مرجع #C)
تشير الكلمة الأساسية ulong إلى نوع بيانات لا يتجزأ ويخزن القيم وفقا للحجم والنطاق كما هو موضح في الجدول التالي.
Type |
النطاق |
Size |
نوع .NET framework |
---|---|---|---|
ulong |
من 0 إلى 18,446,744,073,709,551,615 |
عدد صحيح غير موقّع يتكون من 64 بت |
القيم الحرفية
يمكنك تعريف وتهيئة متغير من نوع 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)