Tango-br
  • Introduction
  • Começando
    • Índice
    • Recado do desenvolvedor
    • O que é a Tango?
    • Por onde começar?
  • Instalação
    • Instalação via NuGet
    • Instalação manual
  • Conceitos
    • Introdução
    • Utilizando comparação de padrões (Pattern Matching)
    • Valores Opcionais
    • Valores "Ou um ou outro" (Either)
    • Saindo do void para o Unit
    • Delegates Func e Action
    • Utilizando operações encadeadas com processos contínuos
    • Currying e Aplicação Parcial
  • Funcional
    • Introdução
    • Currying
    • Aplicação Parcial
    • Extensões
    • Cast Rápido para Delegates
  • Operações
    • Introdução
    • Operações com Booleans
    • Operações com Inteiros
    • Operações com Decimais
    • Operações com Doubles
    • Operações com Strings
  • Tipos
    • Introdução
    • Unit
    • Option<T>
    • Either<TLeft, TRight>
    • Continuation<TFail, TSuccess>
  • Módulos
    • Introdução
    • Option
      • Apply
      • AsEnumerable
      • Bind
      • Count
      • Exists
      • Filter
      • Fold
      • FoldBack
      • Iterate
      • Map
      • OfNullable
      • ToArray
      • ToList
      • ToNullable
    • Either
      • Exists
      • Iterate
      • Fold
      • FoldBack
      • Map
      • Swap
      • ToTuple
    • Continuation
      • AsContinuation
      • Resolve
      • Reject
      • All
    • Collection
      • Append
      • Choose
      • ChunkBySize
      • Collect
      • CompareWith
      • CountBy
      • Concat
      • Distinct
      • Empty
      • Exists
      • Exists2
      • Filter
      • FindIndex
      • Fold
      • Fold2
      • FoldBack
      • FoldBack2
      • ForAll
      • ForAll2
      • ForAll3
      • Head
      • HeadAndTailEnd
      • Range
      • Generate
      • Initialize
      • Iterate
      • Iterate2
      • IterateIndexed
      • IterateIndexed2
      • Map
      • Map2
      • Map3
      • MapIndexed
      • MapIndexed2
      • MapIndexed3
      • Partition
      • Permute
      • Pick
      • Reduce
      • ReduceBack
      • Replicate
      • Scan
      • Scan2
      • ScanBack
      • ScanBack2
      • Tail
      • TryFind
      • TryPick
      • Unzip
      • Unzip3
      • Zip
      • Zip3
  • Extensões
    • Introdução
    • Extensões para Enum
    • Construtor de EqualityComparer
    • Módulos como extensão
Powered by GitBook
On this page
  • Propriedades
  • Métodos
  • Como Usar

Was this helpful?

  1. Operações

Operações com Inteiros

PreviousOperações com BooleansNextOperações com Decimais

Last updated 5 years ago

Was this helpful?

Esta classe estática contém métodos e propriedades com as operações comuns para trabalhar com valores do tipo int. Todos os membros retornam os delegates que realizam a operação descrita.

Atenção

Todas as classes de operações com valores númericos (int, decimal e double) possuem as mesmas propriedades e métodos, alterando apenas o tipo dos parâmetros envolvidos.

Propriedades

Nome

Tipo

Descrição

Add

Func<int, int, int>

Retorna uma função para representar o operador +.

Subtract

Func<int, int, int>

Retorna uma função para representar o operador -.

Multiply

Func<int, int, int>

Retorna uma função para representar o operador *.

Divide

Func<int, int, int>

Retorna uma função para representar o operador /.

Add3

Func<int, int, int, int>

Retorna uma função para representar o operador + entre três valores (valor1 + valor2 + valor3).

Subtract3

Func<int, int, int, int>

Retorna uma função para representar o operador - entre três valores (valor1 - valor2 - valor3).

Multiply3

Func<int, int, int, int>

Retorna uma função para representar o operador * entre três valores (valor1 * valor2 * valor3).

Divide3

Func<int, int, int int>

Retorna uma função para representar o operador / entre três valores (valor1 / valor2 / valor3).

Métodos

Nome

Parâmetros

Retorno

Descrição

AddWith

int value

Func<int, int>

Retorna uma função parcialmente aplicada à função retornada por Add com o parâmetro informado.

SubtractWith

int value

Func<int, int>

Retorna uma função parcialmente aplicada à função retornada por Subtract com o parâmetro informado.

MultiplyWith

int value

Func<int, int>

Retorna uma função parcialmente aplicada à função retornada por Multiply com o parâmetro informado.

DivideWith

int value

Func<int, int>

Retorna uma função parcialmente aplicada à função retornada por Divide com o parâmetro informado.

Add3With

int value

Func<int, int, int>

Retorna uma função parcialmente aplicada à função retornada por Add3 com o parâmetro informado.

Add3With

int value

int value2

Func<int, int>

Retorna uma função parcialmente aplicada à função retornada por Add3 com os dois parâmetros informados.

Subtract3With

int value

Func<int, int, int>

Retorna uma função parcialmente aplicada à função retornada por Subtract3 com o parâmetro informado.

Subtract3With

int value

int value2

Func<int, int>

Retorna uma função parcialmente aplicada à função retornada por Subtract3 com os dois parâmetros informados.

Multiply3With

int value

Func<int, int, int>

Retorna uma função parcialmente aplicada à função retornada por Multiply3 com o parâmetro informado.

Multiply3With

int value

int value2

Func<int, int>

Retorna uma função parcialmente aplicada à função retornada por Multiply3 com os dois parâmetros informados.

Divide3With

int value

Func<int, int, int>

Retorna uma função parcialmente aplicada à função retornada por Divide3 com o parâmetro informado.

Divide3With

int value

int value2

Func<int, int>

Retorna uma função parcialmente aplicada à função retornada por Divide3 com os dois parâmetros informados.

Como Usar

Como as propriedades retornam delegates para representar as operações, é possível utilizá-las como métodos.

Operação Add

int value = 10;
int value2 = 5;
int result = IntegerOperations.Add(value, value2);

//result= 15

Operação Subtract

int value = 10;
int value2 = 5;
int result = IntegerOperations.Subtract(value, value2);

//result= 5

Operação Multiply

int value = 10;
int value2 = 5;
int result = IntegerOperations.Multiply(value, value2);

//result= 50

Operação Divide

int value = 10;
int value2 = 5;
int result = IntegerOperations.Divide(value, value2);

//result= 2

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 os primeiros parâmetros, para obtermos um novo método que espera os parâmetros restantes:

Operação AddWith

int value = 10;
int value2 = 5;
Func<int,int> addWith= IntegerOperations.AddWith(value);
int result = addWith(value2);

//result= 15

Também podemos realizar a chamada de forma concatenada:

int value = 10;
int value2 = 5;
int result = IntegerOperations.AddWith(value)(value2);

//result= 15

As operações ~With existem para as quatro operações descritas, todas elas seguem a mesma característica do exemplo anterior.

Os métodos ~With também são aplicáveis as funções que utilizam três parâmetros, nestes casos você pode utilizar a aplicação parcial com um ou dois parâmetros, de acordo com a necessidade.

Operação Add3With

int value = 10;
int value2 = 5;
int value3 = 5
Func<int, int, int> addWith2= IntegerOperations.Add3With(value);
int result = addWith2(value2, value3);

//result= 20

Também podemos realizar a chamada de forma concatenada:

int value = 10;
int value2 = 5;
int value3 = 5
int result = IntegerOperations.Add3With(value)(value2, value3);

//result= 20

E por fim, podemos informar os dois parâmetros na primeira sobrecarga, em qualquer um dos modos:

int value = 10;
int value2 = 5;
int value3 = 5
Func<int, int> addWith= IntegerOperations.Add3With(value, value2);
int result = addWith(value3);

//result= 20
int value = 10;
int value2 = 5;
int value3 = 5
int result = IntegerOperations.Add3With(value,value2)(value3);

//result= 20

Perceba que as versões ~With passam pelo processo de aplicação parcial, não de currying.

Tango.CommonOperations.IntegerOperations