Compartilhar via


Design do construtor de tipo

Um construtor de tipo é usado para inicializar dados estático em um tipo. Ele é chamado pelo common linguagem tempo de execução (CLR) antes que quaisquer instâncias do tipo são criadas. Construtores de tipo são static (Shared no Visual Basic) e não pode levar a parâmetros.

As diretrizes a seguir ajudam a garantir que o uso de construtores estático é compatível com as práticas recomendadas.

Fazer construtores tipo particular.

Um construtor de tipo, também chamado de construtor da classe ou construtor estático, é usado para inicializar um tipo. O CLR chama o construtor do tipo antes que a primeira instância do tipo é criada ou quaisquer membros estático no tipo são chamados. Se não for um construtor de tipo particular, pode ser chamado por código diferente do CLR. Dependendo das operações executadas no construtor, isso pode causar um comportamento inesperado.

Não lança exceções de construtores de tipo.

Se um tipo de construtor lançará uma exceção, o tipo não é utilizável no domínio do aplicativo onde a exceção foi lançada.

Considere inicializar campos estáticos embutido em vez de usar explicitamente construtores estáticos porque o CLR pode otimizar o desempenho dos tipos que não tem um construtor estático explicitamente definido.

O exemplo de código a seguir demonstra um design que não pode ser otimizado.

Public Class BadStaticExample
    Shared runId as Guid
    Shared Sub New()
        runId  = Guid.NewGuid()
    End Sub
    ' Other members...
End Class
public class BadStaticExample
{
    static Guid runId;
    static BadStaticExample()
    {
        runId  = Guid.NewGuid();
    }
    // Other members...
}

O exemplo de código a seguir pode ser otimizado.

Public Class GoodStaticExample
    Shared runId as Guid = Guid.NewGuid()
    ' Other members...
End Class
public class GoodStaticExample
{
    static Guid runId  = Guid.NewGuid();
    // Other members...
}

Partes direitos autorais 2005 Microsoft Corporation. Todos os direitos reservados.

Partes direitos autorais Addison-Wesley Corporation. Todos os direitos reservados.

Para obter mais informações sobre diretrizes de design, consulte a "diretrizes de design do estrutura: Catálogo de convenções, idiomas e padrões para bibliotecas do .NET reutilizável"Krzysztof Cwalina e Brad Abrams, publicado pela Addison-Wesley, 2005.

Consulte também

Conceitos

Design do construtor

Outros recursos

Diretrizes de design de membro

Diretrizes de Design para desenvolvimento bibliotecas de classe