Struct Quantity<TNumber, TSystemOfMeasurement>
Represents a physical quantity.
[Serializable]
public readonly record struct Quantity<TNumber, TSystemOfMeasurement> : IEquatable<Quantity<TNumber, TSystemOfMeasurement>> where TNumber : IComplex<TNumber>, IDifferentiableFunctions<TNumber> where TSystemOfMeasurement : ISystemOfMeasurement<TSystemOfMeasurement>
Type Parameters
TNumberThe type that represents the value.
TSystemOfMeasurementThe system of measurement to use.
- Implements
-
IEquatable<Quantity<TNumber, TSystemOfMeasurement>>
- Inherited Members
Constructors
Quantity()
public Quantity()
Quantity(TNumber)
public Quantity(TNumber value)
Parameters
valueTNumber
Quantity(TNumber, Dimensions)
public Quantity(TNumber value, Dimensions dimensions)
Parameters
valueTNumberdimensionsDimensions
Properties
Dimensions
The dimensions of the quantity.
public Dimensions Dimensions { get; }
Property Value
Units
The name of the system of measurement.
public string Units { get; }
Property Value
Value
The value of the quantity.
public TNumber Value { get; }
Property Value
- TNumber
Methods
VerifyDimensions(in Dimensions)
Check that the dimensions of the quantity are valid.
[Conditional("DIMENSIONS")]
public void VerifyDimensions(in Dimensions dimensions)
Parameters
dimensionsDimensionsThe dimensions to check against.
Exceptions
- DimensionalAnalysisException
Thrown when the quantity's dimensions do not match the specified dimensions.
Operators
operator +(Quantity<TNumber, TSystemOfMeasurement>, Quantity<TNumber, TSystemOfMeasurement>)
public static Quantity<TNumber, TSystemOfMeasurement> operator +(Quantity<TNumber, TSystemOfMeasurement> z, Quantity<TNumber, TSystemOfMeasurement> w)
Parameters
Returns
- Quantity<TNumber, TSystemOfMeasurement>
operator /(Quantity<TNumber, TSystemOfMeasurement>, Quantity<TNumber, TSystemOfMeasurement>)
public static Quantity<TNumber, TSystemOfMeasurement> operator /(Quantity<TNumber, TSystemOfMeasurement> z, Quantity<TNumber, TSystemOfMeasurement> w)
Parameters
Returns
- Quantity<TNumber, TSystemOfMeasurement>
operator *(Quantity<TNumber, TSystemOfMeasurement>, Quantity<TNumber, TSystemOfMeasurement>)
public static Quantity<TNumber, TSystemOfMeasurement> operator *(Quantity<TNumber, TSystemOfMeasurement> z, Quantity<TNumber, TSystemOfMeasurement> w)
Parameters
Returns
- Quantity<TNumber, TSystemOfMeasurement>
operator -(Quantity<TNumber, TSystemOfMeasurement>, Quantity<TNumber, TSystemOfMeasurement>)
public static Quantity<TNumber, TSystemOfMeasurement> operator -(Quantity<TNumber, TSystemOfMeasurement> z, Quantity<TNumber, TSystemOfMeasurement> w)
Parameters
Returns
- Quantity<TNumber, TSystemOfMeasurement>
operator -(Quantity<TNumber, TSystemOfMeasurement>)
public static Quantity<TNumber, TSystemOfMeasurement> operator -(Quantity<TNumber, TSystemOfMeasurement> z)
Parameters
zQuantity<TNumber, TSystemOfMeasurement>
Returns
- Quantity<TNumber, TSystemOfMeasurement>
operator +(Quantity<TNumber, TSystemOfMeasurement>)
public static Quantity<TNumber, TSystemOfMeasurement> operator +(Quantity<TNumber, TSystemOfMeasurement> z)
Parameters
zQuantity<TNumber, TSystemOfMeasurement>
Returns
- Quantity<TNumber, TSystemOfMeasurement>