Try our conversational search powered by Generative AI!

Struct Money

Money is an immutable struct type that encapsulates an amount of money and a currency.

Implements
System.IComparable
System.IComparable<Money>
System.IEquatable<Money>
System.IFormattable
Inherited Members
System.Object.Equals(System.Object, System.Object)
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.GetType()
Namespace: Mediachase.Commerce
Assembly: Mediachase.Commerce.dll
Version: 12.17.2
Syntax
public struct Money : IComparable, IComparable<Money>, IEquatable<Money>, IFormattable
Remarks

To avoid dangerous implicit Currency evaluations, Currency must always be given explicitly. There is one exception and that is when doing an explicit cast from a decimal value to Money. In this case the DefaultCurrencyFunction will be invoked to determine what the current Currency should be. This is implemented to ease the porting of old code to the new Money based system.

Constructors

Money(Decimal, Currency)

Initializes a new instance of the Money struct.

Declaration
public Money(decimal amount, Currency currency)
Parameters
Type Name Description
System.Decimal amount

The amount.

Currency currency

The currency.

Properties

Amount

Gets the amount of money.

Declaration
public decimal Amount { get; }
Property Value
Type Description
System.Decimal

The amount of money.

Currency

Gets the currency.

Declaration
public Currency Currency { get; }
Property Value
Type Description
Currency

The currency.

DefaultCurrencyFunction

Gets or sets the function for getting default currency.

Declaration
public static Func<Currency> DefaultCurrencyFunction { get; set; }
Property Value
Type Description
System.Func<Currency>

The default currency function.

Methods

Add(Money)

Declaration
public Money Add(Money m)
Parameters
Type Name Description
Money m
Returns
Type Description
Money

Ceiling()

Declaration
public Money Ceiling()
Returns
Type Description
Money

CompareTo(Money)

Declaration
public int CompareTo(Money other)
Parameters
Type Name Description
Money other
Returns
Type Description
System.Int32

CreateMoneyWithDefaultCurrencyFallback(Decimal, Currency)

Creates the money with fallback to default currency if the currency is empty.

Declaration
public static Money CreateMoneyWithDefaultCurrencyFallback(decimal amount, Currency currency)
Parameters
Type Name Description
System.Decimal amount

The amount.

Currency currency

The currency.

Returns
Type Description
Money

A Money struct.

Divide(Decimal)

Declaration
public Money Divide(decimal d)
Parameters
Type Name Description
System.Decimal d
Returns
Type Description
Money

Equals(Money)

Declaration
public bool Equals(Money other)
Parameters
Type Name Description
Money other
Returns
Type Description
System.Boolean

Equals(Object)

Declaration
public override bool Equals(object obj)
Parameters
Type Name Description
System.Object obj
Returns
Type Description
System.Boolean
Overrides
System.ValueType.Equals(System.Object)

Floor()

Declaration
public Money Floor()
Returns
Type Description
Money

GetHashCode()

Declaration
public override int GetHashCode()
Returns
Type Description
System.Int32
Overrides
System.ValueType.GetHashCode()

Multiply(Decimal)

Declaration
public Money Multiply(decimal d)
Parameters
Type Name Description
System.Decimal d
Returns
Type Description
Money

Negate()

Declaration
public Money Negate()
Returns
Type Description
Money

Round()

Rounds the amount.

Declaration
public Money Round()
Returns
Type Description
Money

Rounded amount following the standard currency decimal digits format.

Subtract(Money)

Declaration
public Money Subtract(Money m)
Parameters
Type Name Description
Money m
Returns
Type Description
Money

ToString()

Declaration
public override string ToString()
Returns
Type Description
System.String
Overrides
System.ValueType.ToString()

ToString(IFormatProvider)

Declaration
public string ToString(IFormatProvider formatProvider)
Parameters
Type Name Description
System.IFormatProvider formatProvider
Returns
Type Description
System.String

ToString(String)

Declaration
public string ToString(string format)
Parameters
Type Name Description
System.String format
Returns
Type Description
System.String

ToString(String, IFormatProvider)

Declaration
public string ToString(string format, IFormatProvider formatProvider)
Parameters
Type Name Description
System.String format
System.IFormatProvider formatProvider
Returns
Type Description
System.String

Truncate()

Declaration
public Money Truncate()
Returns
Type Description
Money

Operators

Addition(Money, Money)

Declaration
public static Money operator +(Money m1, Money m2)
Parameters
Type Name Description
Money m1
Money m2
Returns
Type Description
Money

Division(Money, Decimal)

Declaration
public static Money operator /(Money m, decimal d)
Parameters
Type Name Description
Money m
System.Decimal d
Returns
Type Description
Money

Equality(Money, Money)

Declaration
public static bool operator ==(Money m1, Money m2)
Parameters
Type Name Description
Money m1
Money m2
Returns
Type Description
System.Boolean

Explicit(Decimal to Money)

Declaration
public static explicit operator Money(decimal amount)
Parameters
Type Name Description
System.Decimal amount
Returns
Type Description
Money

GreaterThan(Money, Money)

Declaration
public static bool operator>(Money m1, Money m2)
Parameters
Type Name Description
Money m1
Money m2
Returns
Type Description
System.Boolean

GreaterThanOrEqual(Money, Money)

Declaration
public static bool operator >=(Money m1, Money m2)
Parameters
Type Name Description
Money m1
Money m2
Returns
Type Description
System.Boolean

Implicit(Money to Decimal)

Declaration
public static implicit operator decimal (Money value)
Parameters
Type Name Description
Money value
Returns
Type Description
System.Decimal

Inequality(Money, Money)

Declaration
public static bool operator !=(Money m1, Money m2)
Parameters
Type Name Description
Money m1
Money m2
Returns
Type Description
System.Boolean

LessThan(Money, Money)

Declaration
public static bool operator <(Money m1, Money m2)
Parameters
Type Name Description
Money m1
Money m2
Returns
Type Description
System.Boolean

LessThanOrEqual(Money, Money)

Declaration
public static bool operator <=(Money m1, Money m2)
Parameters
Type Name Description
Money m1
Money m2
Returns
Type Description
System.Boolean

Multiply(Money, Decimal)

Declaration
public static Money operator *(Money m, decimal d)
Parameters
Type Name Description
Money m
System.Decimal d
Returns
Type Description
Money

Subtraction(Money, Money)

Declaration
public static Money operator -(Money m1, Money m2)
Parameters
Type Name Description
Money m1
Money m2
Returns
Type Description
Money

UnaryNegation(Money)

Declaration
public static Money operator -(Money m)
Parameters
Type Name Description
Money m
Returns
Type Description
Money

UnaryPlus(Money)

Declaration
public static Money operator +(Money m)
Parameters
Type Name Description
Money m
Returns
Type Description
Money

Explicit Interface Implementations

IComparable.CompareTo(Object)

Declaration
int IComparable.CompareTo(object obj)
Parameters
Type Name Description
System.Object obj
Returns
Type Description
System.Int32

Implements

System.IComparable
System.IComparable<T>
System.IEquatable<T>
System.IFormattable

Extension Methods