Construtores particulares (Guia de Programação em C#)
Um construtor particular é um construtor de instância especial. Ele é geralmente usado em classes que contêm apenas membros estáticos. Se uma classe tem um ou mais construtores particulares e nenhum construtor público, 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ática de um construtor padrão. Observe que se você não usar um modificador de acesso com o construtor ainda será privado por padrão. No entanto, o particular modificador geralmente é usado explicitamente para torná-la desmarque que a classe não pode ser instanciada.
Construtores particulares são usadas para evitar a criação de instâncias de uma classe quando não existem campos de instância ou métodos, como o Math classe, ou quando um método é chamado para obter uma instância de uma classe. Se todos os métodos na classe são estáticos, considere a classe completa estático. Para obter mais informações, consulte: Classes static e membros de classes static (Guia de Programação em C#).
Exemplo
Este é 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 a instrução do exemplo a seguir, ele irá gerar um erro porque o construtor é inacessível devido a seu nível de proteção:
// Counter aCounter = new Counter(); // Error
Especificação da linguagem C#
Para obter mais informações, consulte a Especificação da linguagem C#. A especificação da linguagem é a fonte definitiva para a sintaxe e o uso de C#.
Consulte também
Referência
Classes e structs (Guia de Programação em C#)
Construtores (Guia de Programação em C#)
Destruidores (Guia de Programação em C#)