Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Declare classes usando a class palavra-chave, conforme mostrado no exemplo a seguir:
class TestClass
{
// Methods, properties, fields, events, delegates
// and nested classes go here.
}
O C# dá suporte apenas a uma única herança. Em outras palavras, uma classe pode herdar a implementação de apenas uma classe base. No entanto, uma classe pode implementar mais de uma interface.
A linguagem C# faz referência a documentos da versão mais recentemente lançada da linguagem C#. Ele também contém a documentação inicial para funcionalidades em pré-visualizações públicas para o próximo lançamento do idioma.
A documentação identifica qualquer recurso introduzido pela primeira vez nas três últimas versões do idioma ou nas versões prévias públicas atuais.
Dica
Para descobrir quando um recurso foi introduzido pela primeira vez em C#, consulte o artigo sobre o histórico de versão da linguagem C#.
Para obter mais informações sobre classes, interfaces e herança, consulte o artigo sobre herança na seção de conceitos básicos.
Você pode declarar classes diretamente em um namespace. Não aninhar essas classes em outras classes. Você pode fazer essas classes public ou internal. Por padrão, as classes são internal.
Você pode declarar membros da classe, incluindo classes aninhadas, como public, , protected internal, protected, internal, privateou private protected. Por padrão, os membros são private.
Para obter mais informações, consulte Modificadores de Acesso.
Você pode declarar 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:
- Construtores
- constantes
- Campos
- Finalizadores
- Métodos
- Propriedades
- Indexers
- Operadores
- Eventos
- Representantes
- Classes
- Interfaces
- Tipos de estrutura
- Tipos de enumeração
Exemplo
O exemplo a seguir demonstra a declaração de campos de classe, construtores e métodos. Ele também demonstra a instanciação do objeto e os dados da instância de impressão. Neste exemplo, duas classes são declaradas. A primeira classe contém Childdois campos privados (name e age), dois construtores públicos e um método público. A segunda classe, StringTestcontém 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
Você só pode acessar os campos privados (name e age) por meio do método público da Child classe. Por exemplo, você não pode imprimir o nome do filho do Main método usando uma instrução como esta:
Console.Write(child1.name); // Error
Acessar membros privados de Child apenas Main é possível se Main for um membro da classe. Tipos declarados dentro de uma classe sem um modificador de acesso padrão para private, portanto, os membros de dados neste exemplo ainda private serão se a palavra-chave for removida. Por fim, para o objeto criado usando o construtor sem parâmetros (child3), o age campo é inicializado como zero por padrão.
Especificação da linguagem C#
Para obter mais informações, consulte a Especificação da Linguagem C# . A especificação de idioma é a fonte definitiva para a sintaxe e o uso de C#.