Podemos fazer barbaridades com isso... Por exemplo, dizer que uma mesma variável não é igual a ela mesma!
Sim, dá para fazer isso em C#:
using System;
namespace Teste
{
class Program
{
///
/// Reescrevendo o operador de comparação "igual" (==) da classe Program
///
/// O primeiro objeto a ser comparado
/// O segundo objeto a ser comparado
///
public static Boolean operator ==(Program p1, Program p2)
{
//Em qualquer situação, retorno false
return false;
}
///
/// Reescrevendo o operador de comparação "diferente" (!=) da classe Program
///
/// O primeiro objeto a ser comparado
/// O segundo objeto a ser comparado
///
public static Boolean operator !=(Program p1, Program p2)
{
//Em qualquer situação, retorno true
return true;
}
static void Main(string[] args)
{
Program p = new Program();
Console.WriteLine("Este programa é igual a ele mesmo? " + (p == p ? "Sim" : "Não"));
Console.ReadKey();
}
}
}
Ele sempre vai dizer que p não é igual a p (ou seja, p == p dá false).
Bizarro, não?
Até mais!
Nenhum comentário:
Postar um comentário