الدوال الإنشائية الخاصة ( ارشادات برمجة C# )

الدالة الإنشائية الخاصة هي مثيل خاص للدالة الإنشائية. يُستخدم بصفة عامة في الفئات التي تتضمن الأعضاء الثابتون فقط. إذا كانت الفئة تتضمن واحدة أو أكثر من الدوال الإنشائة الخاصة و لا تتضمن أي دالة إنشائية عامة, فإن الفئات الأخرى ( ما عدا الفئات المتداخلة ) لا يمكنها إنشاء مثيلات لهذه الفئة. فعلى سبيل المثال:

class NLog
{
    // Private Constructor:
    private NLog() { }

    public static double e = Math.E;  //2.71828...
}

ويمنع تعريف الدالة الإنشائية الفارغة التوليد التلقائي من دالة انشائية افتراضية. لاحظ أنه إذا لم تكن تستخدم معدّل وصول مع الدالة الإنشائية فإنها ستظل خاصة بشكل افتراضي. ومع ذلك، فإن المعدل خاص يستخدم عادة بشكل صريح لجعله واضح لفئة يتعذر إنشاء مثيل لها.

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

مثال

المثال التالي لفئة باستخدام دالة إنشائية خاصة.

public class Counter
{
    private Counter() { }
    public static int currentCount;
    public static int IncrementCount()
    {
        return ++currentCount;
    }
}

class TestCounter
{
    static void Main()
    {
        // If you uncomment the following statement, it will generate
        // an error because the constructor is inaccessible:
        // Counter aCounter = new Counter();   // Error

        Counter.currentCount = 100;
        Counter.IncrementCount();
        Console.WriteLine("New count: {0}", Counter.currentCount);

        // Keep the console window open in debug mode.
        Console.WriteLine("Press any key to exit.");
        Console.ReadKey();
    }
}
// Output: New count: 101

لاحظ أنه إذا قمت بتحرير التعريف التالي من المثال، فإنه سوف يؤدي إلى خطأ لأن الدالة الإنشائية يصعب الوصول إليها بسبب مستوى الحماية الخاص بها:

// Counter aCounter = new Counter();   // Error

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

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

راجع أيضًا:

المرجع

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

دالات الإنشاء (دليل البرنامج لـ #C)

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

خاصة (C# مرجع)

عام (C# مرجع)

المبادئ

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