Aracılığıyla paylaş


Özel Kurucular (C# Programlama Kılavuzu)

Özel örnek Oluşturucusu bir özel kurucudur.Ayrıca, yalnızca statik üyeleri içeren sınıflarda genellikle kullanılır.Bir sınıf, bir veya daha fazla özel yapıcılar ve ortak Oluşturucusu varsa, diğer sınıfların (dışında yuvalanmış sınıfları) bu sınıfın örneklerini oluşturamazsınız.Örne?in:

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

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

Bildiriminde boş yapıcı, bir varsayılan kurucu otomatik oluşturulmasını engeller.Kurucu görüntülenmeye devam edecek bir erişim değiştiricisi kullanmazsanız, varsayılan olarak özel not.Ancak, özel değiştirici genellikle açıkça sağlamak için kullanılan sınıf örneği oluşturulamıyor temizleyin.

Özel yapıcılar önlemek için kullanılan olduğunda oluşum alanlarına ya da yöntemleri gibi bir sınıfın örneklerini oluşturma Math sınıfı, veya ne zaman bir yöntemi çağırıldığında, bir sınıfın bir örneği almak için.Sınıf içindeki bütün yöntemler statik tam sınıf statik yapmayı düşünün.Daha fazla bilgi için bkz. Statik sınıflar ve statik sınıf üyelerini (C# Programlama Kılavuzu).

Örnek

Özel bir kurucu kullanarak bir sınıfın örneği aşağıdadır.

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

Örneğindeki aşağıdaki ifadeyi yorumsuz, koruma düzeyi nedeniyle kurucu erişilemediğinden bu hataya neden olur, dikkat edin:

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

C# dil belirtiminin

Daha fazla bilgi için bkz: C# dil belirtiminin. Dil belirtimi, C# sözdizimi ve kullanımı için nihai kaynaktır.

Ayrıca bkz.

Başvuru

Sınıflar ve yapılar (C# Programlama Kılavuzu)

Kurucular (C# Programlama Kılavuzu)

Yıkıcı (C# Programlama Kılavuzu)

Özel (C# Reference)

Ortak (C# Reference)

Kavramlar

C# Programlama Kılavuzu