Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Declare classes usando a class palavra-chave, como mostrado no seguinte exemplo:
class TestClass
{
// Methods, properties, fields, events, delegates
// and nested classes go here.
}
C# suporta apenas herança única. 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 referência da linguagem C# documenta a versão mais recentemente lançada da linguagem C#. Contém também documentação inicial para funcionalidades em versões preliminares públicas para a próxima versão da linguagem.
A documentação identifica qualquer funcionalidade introduzida pela primeira vez nas últimas três versões da língua ou em pré-visualizações públicas atuais.
Sugestão
Para saber quando uma funcionalidade foi introduzida pela primeira vez em C#, consulte o artigo sobre o histórico de versões da linguagem C#.
Para mais informações sobre classes, interfaces e herança, consulte o artigo sobre herança na secção de fundamentos.
Podes declarar as classes diretamente dentro de um namespace. Não juntes estas classes a outras classes. Podes fazer estas classes ou publicinternal. Por defeito, as classes são internal.
Pode declarar membros de classe, incluindo classes aninhadas, como public, protected internal, internalprotected, private, , ou private protected. Por defeito, 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
- Metodologia
- Propriedades
- Indexadores
- Operadores
- Eventos
- Delegados
- 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 instanciação de objeto e impressão de dados de instância. Neste exemplo, duas classes são declaradas. A primeira classe, Child, contém dois campos privados (name e age), dois construtores públicos e um método público. A segunda classe, StringTest, conté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.
*/
Observações
Só podes aceder aos campos privados (name e age) através do método público da Child disciplina. Por exemplo, não pode imprimir o nome da criança a partir do Main método usando uma instrução como esta:
Console.Write(child1.name); // Error
O acesso a membros privados de Child from Main só é possível se Main for membro da turma. Tipos declarados dentro de uma classe sem modificador de acesso por defeito para private, pelo que os membros dos dados neste exemplo continuam private se a palavra-chave for removida. Finalmente, para o objeto criado usando o construtor sem parâmetros (child3), o age campo é inicializado a zero por defeito.
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 do C#.