راجع "البرمجة المتقدمة C#، الإصدار الرابع"
· أحد أسباب كتابة منشئ ثابت هو أن الفصل يحتوي على بعض الحقول أو الخصائص الثابتة التي تحتاج إلى تهيئتها من مصدر خارجي قبل استخدام الفصل لأول مرة.
· يتم تشغيل المنشئات الثابتة مرة واحدة على الأكثر، قبل أن يشير الكود إلى الفصل.
· لا يحتوي المنشئ الثابت على معدلات وصول ولا يتم استدعاؤه مطلقًا بواسطة كود C# آخر، لذا فإن معدلات الوصول مثل العامة والخاصة لا معنى لها.
· لا يمكن للمنشئ الثابت أن يأخذ أي معلمات، ويمكن أن يحتوي الفصل على مُنشئ ثابت واحد فقط.
· يستطيع المنشئون الثابتون فقط الوصول إلى الأعضاء الثابتين في الفصل، وليس أعضاء المثيل.
ويرد مثال أدناه:
تفضيلات المستخدم للفئة العامة
{
لون BackColor ثابت عام للقراءة فقط؛
تفضيلات المستخدم الثابتة ()
{
// قراءة اللون الخلفي من المصدر الخارجي؛
}
// ...
}
classMainEntryPoint
{
الفراغ الثابت الرئيسي ()
{
Console.WriteLine(UserPreferences.BackColor.ToString());
}
}
لاحظ أن مُنشئات المثيلات بدون معلمات يمكن أن تتعايش بأمان مع مُنشئات ثابتة في الفصل. على الرغم من أن قائمة المعلمات هي نفسها، إلا أنه لا يوجد تناقض، لأنه يتم تنفيذ المُنشئ الثابت عند تحميل الفئة، ويتم تنفيذ مُنشئ المثيل عند إنشاء المثيل، لذلك لن يكون هناك تعارض في تنفيذ المُنشئ.
فئة MyTempClass
{
عدد صحيح ثابت عام = 100؛
ثابت MyTempClass()
{
الأعداد = 101؛
}
}
برنامج الصف
{
الفراغ الثابت الرئيسي (سلسلة [] الحجج)
{
int x = MyTempClass.num;
Console.WriteLine();
}
}
في البرنامج أعلاه، إذا لم تتم إضافة المُنشئ الثابت، فإن قيمة x هي 100. ومع إضافة المُنشئ، تكون قيمة x هي 101.