sizeof (مرجع #C)

تستخدم للحصول على الحجم بالبايت للأنواع الغير مدارة. تتضمن الأنواع الغير مدارة الأنواع المضمنة المسردة في الجدول الذي سيتبع والذي يلي:

  • أنواع enum

  • أنواع المؤشرات

  • البنيات المعرفة من قبل المستخدم التي لا تحتوي على أي حقول أو خصائص التي تكون من أنواع مرجع

المثال التالي يبين كيفية استرداد حجم الـ int:

// Constant value 4:
int intSize = sizeof(int); 

ملاحظات

بدايتاً من الإصدار 2.0 من #C، تطبيق sizeof للأنواع المضمنة لا تتطلب بأن تكون في وضع unsafe.

لا يمكن التحميل الزائد لعامل التشغيل sizeof. القيم التي يتم إرجاعها بواسطة عامل التشغيل sizeof تكون من نوع int. يبين الجدول التالي القيم الثابتة التي يتم استبدالها بتعبيرات sizeof ذات أنواع معينة مضمنة كمعاملات.

Expression

قيمة ثابتة

sizeof(sbyte)

1

sizeof(byte)

1

sizeof(short)

2

sizeof(ushort)

2

sizeof(int)

4

sizeof(uint)

4

sizeof(long)

8

sizeof(ulong)

8

sizeof(char)

2 (Unicode)

sizeof(float)

4

sizeof(double)

8

sizeof(decimal)

16

sizeof(bool)

1

للأنواع الأخرى، بما في ذلك البنيات يستخدم عامل التشغيل sizeof فقط في كتل التعليمات البرمجية الغير آمنة. على الرغم من أنه يمكنك استخدام أسلوب Marshal.SizeOf القيمة التي يتم إرجاعها بواسطة هذا الأسلوب لا تكون نفس القيمة التي يتم إرجاعها بواسطة sizeof. Marshal.SizeOf يرجع الحجم بعدما يتم تنظيم وارسال النوع، بينما يقوم sizeof بإرجاع الحجم كما تم حجزه بواسطة وقت تشغيل اللغة العامة, بما في ذلك أي مسافات.

مثال

    class MainClass
    {
        // unsafe not required for primitive types
        static void Main()
        {
            Console.WriteLine("The size of short is {0}.", sizeof(short));
            Console.WriteLine("The size of int is {0}.", sizeof(int));
            Console.WriteLine("The size of long is {0}.", sizeof(long));
        }
    }
    /*
    Output:
        The size of short is 2.
        The size of int is 4.
        The size of long is 8.
    */

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

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

راجع أيضًا:

المرجع

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

الكلمات الأساسية لعوامل التشغيل (مرجع #C)

enum (مرجع #C)

التعليمات البرمجية الغير آمنة والمؤشرات (دليل البرمجة لـ #C)

البنيات (دليل البرمجة لـ #C)

الثوابت ( ارشادات البرمجة C# )

المبادئ

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

موارد أخرى

مرجع C#‎