Operações com Booleans
Esta classe estática contém métodos e propriedades com as operações comuns para trabalhar com valores do tipo bool. Todos os membros retornam os delegates que realizam a operação descrita.
Propriedades
| Nome | Tipo | Descrição |
|---|---|---|
| Not | Func<bool, bool> | Retorna uma função para representar o operador !. |
| And | Func<bool, bool, bool> | Retorna uma função para representar o operador &&. |
| Or | Func<bool, bool, bool> | Retorna uma função para representar o operador ||. |
Métodos
| Nome | Parâmetros | Retorno | Descrição |
|---|---|---|---|
| AndWith | bool value | Func<bool, bool> | Retorna uma função parcialmente aplicada à função retornada por And com o parâmetro informado. |
| OrWith | bool value | Func<bool, bool> | Retorna uma função parcialmente aplicada à função retornada por Or com o parâmetro informado. |
Como Usar
Como as propriedades retornam delegates para representar as operações, é possível utilizá-las como métodos.
Operação Not
bool value = true;
bool result = BooleanOperations.Not(value);
//result= false
Operação Or
bool value = true;
bool value2 = false;
bool result= BooleanOperations.Or(value, value2);
//result = true
Operação And
bool value = true;
bool value2 = false;
bool result= BooleanOperations.And(value, value2);
//result = false
Para os métodos temos uma sintaxe um pouco diferente, isso porque é realizada uma aplicação parcial ao método retornado pela própriedade.
Por conta disso, precisamos executar o método com o primeiro parâmetro, para obtermos um novo método que espera o segundo parâmetro:
Operação OrWith
bool value = true;
bool value2 = false;
Func<bool,bool> orWithPartial = BooleanOperations.OrWith(value);
bool result = orWithPartial(value2);
//result = true
Também podemos realizar a chamada de forma concatenada:
bool value = true;
bool value2 = false;
bool result = BooleanOperations.OrWith(value)(value2);
//result = true
Operação AndWith
bool value = true;
bool value2 = false;
Func<bool,bool> andWithPartial = BooleanOperations.AndWith(value);
bool result = andWithPartial(value2);
//result = false
Também podemos realizar a chamada de forma concatenada:
bool value = true;
bool value2 = false;
bool result = BooleanOperations.AndWith(value)(value2);
//result = false