Construct this object by wrapping a given value.
Given some type U, perform a dynamic cast on the class reference held within this optional value, and return a new optional value which may be null if the cast fails.
Assign another value to this object.
Return some value from this reference, or a default value by calling a callable argument. (function pointer, delegate, etc.)
This type represents an optional value for T.
This is a means of explicitly dealing with null values in every case.