Share via


Structs (C# Programming Guide)

Structs são definidos usando o struct palavra-chave, por exemplo:

public struct PostalAddress
{
    // Fields, properties, methods and events go here...
}

Structs compartilham a mesma sintaxe de classes, a maioria, embora o structs são mais limitados que classes:

  • No prazo de uma declaração struct, campos não podem ser inicializados menos que elas são declaradas como const ou static.

  • Uma struct não pode declarar um construtor padrão (um construtor sem parâmetros) ou um destructor.

  • Structs são copiados na atribuição. Quando uma estrutura é atribuída a uma nova variável, todos os dados são copiados e qualquer modificação na nova cópia, não é refletida na estrutura original. Isso é importante lembrar ao trabalhar com coleções de tipos de valor, como um Dictionary < string, myStruct >.

  • As estruturas são do tipo valor e classes são do tipo referência.

  • Ao contrário de classes, structuras podem ser instanciadas sem usar um novo operador.

  • Structs pode declarar construtores com parâmetros.

  • Uma estrutura não pode herdar uma outra estrutura ou classe, e tambem não pode ser base de uma classe. Structs herdar diretamente de System.ValueType, que herda de System.Object.

  • Uma estrutura pode implementar interfaces.

  • Uma structura pode ser usada como um tipo anulável e pode ser atribuída um valor nulo.

Seções relacionadas

Para obter mais informações:

Consulte também

Referência

Classes e estruturas (guia de programação de C#)

Classes (C# Programming Guide)

Conceitos

C# Programming Guide

Design da estrutura