operador (translation from VPE for Csharp Reference)
Use o operator palavra-chave para sobrecarregar um operador interno ou para fornecer uma conversão definida pelo usuário em uma declaração de classe ou estrutura.
Exemplo
Esta é uma classe muito simplificada para números fracionários.Sobrecarrega a + e * operadores realizar fracionária adição e multiplicação e também fornece um operador de conversão converte um tipo de fração para um tipo duplo.
class Fraction
{
int num, den;
public Fraction(int num, int den)
{
this.num = num;
this.den = den;
}
// overload operator +
public static Fraction operator +(Fraction a, Fraction b)
{
return new Fraction(a.num * b.den + b.num * a.den,
a.den * b.den);
}
// overload operator *
public static Fraction operator *(Fraction a, Fraction b)
{
return new Fraction(a.num * b.num, a.den * b.den);
}
// user-defined conversion from Fraction to double
public static implicit operator double(Fraction f)
{
return (double)f.num / f.den;
}
}
class Test
{
static void Main()
{
Fraction a = new Fraction(1, 2);
Fraction b = new Fraction(3, 7);
Fraction c = new Fraction(2, 3);
Console.WriteLine((double)(a * b + c));
}
}
/*
Output
0.880952380952381
*/
Especificação da linguagem C#
Para obter mais informações, consulte as seções a seguir no Especificação da linguagem C#:
7.2.2 Sobrecarga de operador
7.2.3 Resolução de sobrecarga de operador unário
7.2.4 Resolução de sobrecarga de operador binário
Consulte também
Tarefas
Conceitos
Referência
implícita (translation from VPE for Csharp Reference)
explícita (translation from VPE for Csharp Reference)