Tango
  • Introduction
  • Getting Started
    • Summary
    • From me, the Developer
    • What is Tango?
    • Where to start?
  • Installation
    • Based on NuGet
    • Manually
  • Fundamentals
    • Introduction
    • Using Pattern Matching
    • Option values
    • Either values
    • From void to Unit
    • Func and Action
    • Chainable operations in a Continuation flow
    • Currying and Partial Application
  • Functional
    • Introduction
    • Currying
    • Partial Application
    • Functional Extensions
    • QuickCast to Delegates
  • Operations
    • Introduction
    • Operations with Booleans
    • Operations with Integers
    • Operations with Decimals
    • Operations with Doubles
    • Operations with Strings
  • Types
    • Introduction
    • Unit
    • Option<T>
    • Either<TLeft, TRight>
    • Continuation<TFail, TSuccess>
  • Modules
    • Introduction
    • 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
  • Extensions
    • Introduction
    • Enum Extensions
    • EqualityComparer Builder
    • Modules as Extensions
Powered by GitBook
On this page
  • Usage
  • Casts between Action and Func

Was this helpful?

  1. Types

Unit

PreviousIntroductionNextOption<T>

Last updated 5 years ago

Was this helpful?

The unit type is a type that indicates the absence of a specific value. The Unit type has only a single value, which acts as a placeholder when no other value exists or is needed.

The unit type resembles the void type in languages such as C# and C++. The value of the unit type is often used to hold the place where a value is required by the language syntax, but when no value is needed or desired, like in casts from action to functions that needs to return a value.

The concept behind this type can be find in the section: .

Usage

You can create a Unit value normally like any struct.

Unit unit = new Unit();

This struct have no properties or methods besides the shared operations presents in all structures: Equals, GetHashCode, GetType e ToString.

Casts between Action and Func

Some high order functions needs a Func delegate in its parameters, it's is possible to create this delegate from an Action function by using .

Originally an Action delegate doesn't returns anything, because it has a void type as returns. At this point, Tango uses the Unit type to create a new function that doesn't return anything and can be represented by Func delegate as well.

The fundamentals about Func and Action can be find in section.

Tango.Types.Unit
Fundamentals > From void to Unit
ToFunction
Fundamentals > Function and Action