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

الثوابت هي قيم ثابتة تعرف وقت الترجمة ولا تقوم بتغيير حياة البرنامج. ثوابت تم تعريفها مع معدل const . C# المتضمنة أنواع فقط (باستثناء System.Object) قد تم تعريفها كـ const. للحصول على قائمة المتضمنة أنواع, راجع جدول الأنواع المضمنة (مرجع C#). أنواع معرفة من قبل مستخدم , بما في ذلك الفئات والبنيات صفيفات، لا يمكن أن يكون const. استخدام المعدل للقراءة فقطللإنشاء فئة،بنية أو صفيفة و التي تتم تهيئتها مرة واحدة أثناء التشغيل, (على سبيل المثال في البناء)، وبعد ذلك لا يمكن تغييرها.

لا يعتمد C# const الأساليب أو الخصائص أو الأحداث.

نوع enum يتيح لك تعريف ثوابت مسماة لأنواع المضمنة المتكاملة ( على سبيل المثال int, uint, long، وهكذا). لمزيد من المعلومات، راجع enum (مرجع #C).

يجب تهيئة الثوابت كما تم تعريفها. فعلى سبيل المثال:

class Calendar1
{
    public const int months = 12;
}

في هذا المثال، الثابت months يكون دوماً 12 و لا يمكن تغييرها حتى بالفئة نفسها. في الواقع، عندما يصادف المترجم معرف مستمر في شفرة مصدر C# (على سبيل المثال، months) ، فإنه يستبدل القيمة الحرفية مباشرة إلى رمز اللغة الوسيطة (IL) التي تنتجها. لأنه لا يوجد عنوان متغير المقترنة ثابت وقت التشغيل const الحقول لا يمكن تمريرها بالإشارة ولا يمكن أن تظهر كقيمة L في التعبير.

ملاحظة

استعمل علامة الاقتباس عند الإشارة إلى القيم الثابتة المحددة في التعليمات البرمجية الأخرى مثل ملفات DLL. إذا كان إصدار جديد من ملف مكتبة الارتباط الحيوي DLL يعرف قيمة جديدة للثابت، فإن البرنامج الخاص بك لا يزال يقيد القيمة الحرفية القديمة حتى تتم إعادة التصنيف ضد الإصدار الجديد.

يمكن إعلان ثوابت متعددة من نفس النوع وفي الوقت نفسه، على سبيل المثال:

class Calendar2
{
    const int months = 12, weeks = 52, days = 365;
}

يمكن أن يشير التعبير الذي يتم استخدامه لتهيئة ثابت إلى ثابت آخر إذا لم يتم إنشاء مرجع دائري. فعلى سبيل المثال:

class Calendar3
{
    const int months = 12;
    const int weeks = 52;
    const int days = 365;

    const double daysPerWeek = (double) days / (double) weeks;
    const double daysPerMonth = (double) days / (double) months;
}

يمكن أن يشار إلى الثوابت كـ العام‏‎, خاص, محمي‏‎, داخلي‏‎,,أو protected internal. وتحدد هذه المعدلات في الوصول إلى كيفية وصول مستخدمين لفئة الثابت. لمزيد من المعلومات، راجع معدلات الاتصال ( ارشادات البرمجة C# ).

يتم الوصول إلى ثوابت كما لو كانت الحقول ثابت لأن قيمة الثابت هو نفسه بالنسبة لجميع الحالات من النوع. لا تستخدم الكلمة الأساسية static لتعريفهم. يجب أن تستخدم التعبيرات الغير موجودة في الفئةو التي تعرف الثابت اسم الفئة والفترة واسم الثابت للوصول للثابت. فعلى سبيل المثال:

int birthstones = Calendar.months;

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

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

راجع أيضًا:

المرجع

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

الخصائص (دليل البرمجة لـ #C)

الأنواع (دليل البرمجة لـ #C)

للقراءة فقط (مرجع C#)

المبادئ

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

موارد أخرى

immutability في C# جزء واحد: أنواع من Immutability