DiscriminatedUnion<Type1, Type2, Type3, Type4, Type5, Type6, Type7> Class

Summary

A Discriminated union for 7 types.
Namespace
FunctionalSharp.DiscriminatedUnions
Base Types
  • object
graph TD Base0["object"]-->Type Type["DiscriminatedUnion<Type1, Type2, Type3, Type4, Type5, Type6, Type7>"] class Type type-node

Syntax

[Serializable]
public class DiscriminatedUnion<Type1, Type2, Type3, Type4, Type5, Type6, Type7>

Attributes

Type Description
SerializableAttribute

Type Parameters

Name Description
Type1 Type1
Type2 Type2
Type3 Type3
Type4 Type4
Type5 Type5
Type6 Type6
Type7 Type7

Constructors

Name Summary
DiscriminatedUnion() Private constructor to support serialization.
DiscriminatedUnion(object) Runs Actions for the matched types.
DiscriminatedUnion(Type1) Creates a new Discriminated union of with Type1
DiscriminatedUnion(Type2) Creates a new Discriminated union of with Type2
DiscriminatedUnion(Type3) Creates a new Discriminated union of with Type3
DiscriminatedUnion(Type4) Creates a new Discriminated union of with Type4
DiscriminatedUnion(Type5) Creates a new Discriminated union of with Type5
DiscriminatedUnion(Type6) Creates a new Discriminated union of with Type6
DiscriminatedUnion(Type7) Creates a new Discriminated union of with Type7

Fields

Name Constant Value Summary
Item1
The storage for type1.
Item2
The storage for type2.
Item3
The storage for type3.
Item4
The storage for type4.
Item5
The storage for type5.
Item6
The storage for type6.
Item7
The storage for type7.
tag
The tag indicating what item is actually stored.

Methods

Extension Methods

Name Value Summary
Match<DiscriminatedUnion<Type1, Type2, Type3, Type4, Type5, Type6, Type7>>() PatternMatchSingleContext<T>
Starts a pattern match for a single value. Subsequent calls to With() need to be used to specify conditions
ToOption<DiscriminatedUnion<Type1, Type2, Type3, Type4, Type5, Type6, Type7>>() IOption<T>
Turns the type T into an option type.