Partilhar via


Operadores sobrecarregável (guia de programação translation from VPE for Csharp)

Translation from VPE for Csharp permite tipos definidos pelo usuário sobrecarregar operadores com a definição de funções de membro estático usando o operador palavra-chave.Podem da nem todos sistema autônomo operadores ser sobrecarregados, no entanto, e outros têm restrições, conforme listados na tabela:

Operadores

Overloadability

+, -, !, ~, ++, --, True, False

Esses operadores unários podem ser sobrecarregados.

+, -, *, /, %, &, |, ^, <<, >>

Esses operadores binário podem ser sobrecarregados.

==, !=, <, >, <=, >=

Os operadores de comparação podem ser sobrecarregados (mas consulte a observação após esta tabela).

&&, ||

Os operadores lógicos condicionais não podem ser sobrecarregados, mas eles são avaliados usando & e |, que podem ser sobrecarregados.

[]

O operador de indexação de matriz não pode ser sobrecarregado, mas você pode definir indexadores.

()

O operador de conversão não pode ser sobrecarregado, mas você pode definir novos operadores de conversão (consulte explícita and implícita).

+=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>=

Operadores de atribuição não podem ser sobrecarregados, mas +=, por exemplo, é calculado usando +, que podem ser sobrecarregados.

=, ., ?:, ->, novo, é, sizeof, TypeOf

Esses operadores não podem ser sobrecarregados.

Observação:

Os operadores de comparação se sobrecarregado, devem ser sobrecarregados em pares, isto é, se == está sobrecarregado != também deve ser sobrecarregados. O inverso também é verdadeiro e semelhantes para < e >e para <= e >=.

Para sobrecarga um operador em uma classe personalizada requer a criação de um método na classe com a assinatura correta.O método deve ser nomeado "operador X" onde X é o nome ou o símbolo do operador que está sendo sobrecarregado.Operadores unários têm um parâmetro e operadores binário têm dois parâmetros.Em cada caso, um parâmetro deve ser do mesmo tipo que a classe ou struct que declara o operador, sistema autônomo demonstrado no exemplo a seguir:

public static Complex operator +(Complex c1, Complex c2)

Para obter mais informações, consulte Como: Use o sobrecarga de operador para criar uma classe (guia de programação translation from VPE for Csharp) do número complexo.

Consulte também

Conceitos

Guia de Programação C#

Referência

Instruções, expressões, e operadores (guia de programação C#)

Operadores (guia de programação translation from VPE for Csharp)

Operadores C#

Outros recursos

Por que operadores sobrecarregados sempre são estático em translation from VPE for Csharp?