class (Referência de C#)

Classes são declaradas usando a palavra-chave class, conforme mostrado no exemplo o seguir:

class TestClass
{
    // Methods, properties, fields, events, delegates 
    // and nested classes go here.
}

Comentários

Somente a única herança é permitida em C#. Ou seja uma classe pode herdar implementação de uma classe base somente. No entanto, uma classe pode implementar mais de uma interface. A tabela a seguir mostra exemplos de implementação de herança e da interface da classe:

Herança

Exemplo

Nenhum

class ClassA { }

Single

class DerivedClass: BaseClass { }

Nenhum, implementa duas interfaces

class ImplClass: IFace1, IFace2 { }

Único, implementa uma interface

class ImplDerivedClass: BaseClass, IFace1 { }

As classes que você declarar diretamente em um namespace, não aninhadas dentro de outras classes, podem ser público ou interno. Classes são internal por padrão.

Membros, incluindo classes aninhadas, pode ser público, protected internal, protegido, interno, ou private. Os membros são private por padrão.

Para obter mais informações, consulte Modificadores de acesso (Guia de Programação em C#).

Você pode declarar as classes genéricas que têm parâmetros de tipo. Para obter mais informações, consulte Classes genéricas.

Uma classe pode conter declarações dos seguintes membros:

Exemplo

O exemplo a seguir demonstra como declarar campos de classe construtores, métodos, e. Também demonstra a instanciação do objeto e os dados da instância de impressão. Nesse exemplo, duas classes são declarados, a classe de Child , que contém dois campos particulares (name e age) e dois métodos públicos. A segunda classe, StringTest, é usada para conter Main.

class Child
{
    private int age;
    private string name;

    // Default constructor: 
    public Child()
    {
        name = "N/A";
    }

    // Constructor: 
    public Child(string name, int age)
    {
        this.name = name;
        this.age = age;
    }

    // Printing method: 
    public void PrintChild()
    {
        Console.WriteLine("{0}, {1} years old.", name, age);
    }
}

class StringTest
{
    static void Main()
    {
        // Create objects by using the new operator:
        Child child1 = new Child("Craig", 11);
        Child child2 = new Child("Sally", 10);

        // Create an object using the default constructor:
        Child child3 = new Child();

        // Display results:
        Console.Write("Child #1: ");
        child1.PrintChild();
        Console.Write("Child #2: ");
        child2.PrintChild();
        Console.Write("Child #3: ");
        child3.PrintChild();
    }
}
/* Output:
    Child #1: Craig, 11 years old.
    Child #2: Sally, 10 years old.
    Child #3: N/A, 0 years old.
*/

Comentários

Observe, no exemplo anterior, os campos particulares (name e age) podem ser acessados com métodos públicos de classes de Child . Por exemplo, você não pode imprimir o nome do filho, o método de Main , usando uma instrução assim:

Console.Write(child1.name);   // Error

Acessar membros particulares de Child de Main seria possível Main somente se fosse um membro da classe.

Tipos declarados dentro de uma classe sem um modificador de acesso padrão a private, então os membros de dados nesse exemplo é ainda private se a palavra-chave foi removido.

Finalmente, observe que para o objeto criado usando o construtor padrão (child3), o campo de idade foi inicializado para zero por padrão.

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

Palavras-chave C#

Tipos de referência (Referência de C#)

Conceitos

Guia de Programação em C#

Outros recursos

Referência de C#