Compartilhar via


Construtores particular (guia de programação translation from VPE for Csharp)

Um construtor particular é um construtor de instância especiais.Ele é geralmente usado em classes que contêm apenas membros estático.Se uma classe tem um ou mais particular construtores e nenhum construtores públicos, outras classes (exceto classes aninhadas) não é possível criar instâncias dessa classe.Por exemplo:

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

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

A declaração do construtor vazio impede que a geração automático de um construtor padrão.Observe que se você não usar um modificador de acesso com o construtor ele ainda será particular por padrão.No entanto, a particular modificador normalmente usado explicitamente para torná-lo desmarcar que a classe não pode ser instanciada.

particular construtores são usados para impedir a criação de instâncias de uma classe quando não existem campos de instância ou métodos, sistema autônomo a Math classe, ou quando um método é chamado para obter uma instância de uma classe. Se todos os métodos na classe estáticos, considere a classe completa estático.Para obter mais informações, consulte: Classes estáticas e membros de classe estáticos (guia de programação C#).

Exemplo

A seguir é um exemplo de uma classe usando um construtor particular.

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

Observe que se não comentar a seguinte demonstrativo do exemplo, ela gerará um erro porque o construtor está inacessível devido a seu nível de proteção de:

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

Especificação da linguagem C#

Para obter mais informações, consulte as seções a seguir no Especificação da linguagem C#:

  • 10.11.5 Construtores particulares

  • 10.1.1.3 Classes estáticas

Consulte também

Conceitos

Guia de Programação C#

Referência

Classes e estruturas (guia de programação translation from VPE for Csharp)

Construtores (Guia de programação do C#)

Destructors (guia de programação C#)

particular (referência C#)

public (referência C#)