using System;
using System.Globalization;
using System.Runtime;
using System.Runtime.Serialization;
using System.Security;
// currency value types:
namespace Currency
{
[Serializable]
public struct CAD : IComparable, IFormattable, IConvertible, ISerializable, IComparable<CAD>, IEquatable<CAD>
{
/* constructors... */
/* properties */
public long WholeNumbers
{
get;
}
public long DigitsAfterDecimal
{
get;
}
// other properties and fields...
/* operators */
public static CAD operator +(CAD cad1, CAD cad2);
public static CAD operator +(CAD cad, USD usd);
public static CAD operator +(CAD cad, decimal m);
public static CAD operator +(CAD cad, double d);
public static CAD operator +(CAD cad, float f);
public static CAD operator +(CAD cad, object o);
// other operators...
/* other methods... */
}
[Serializable]
public struct USD : IComparable, IFormattable, IConvertible, ISerializable, IComparable<USD>, IEquatable<USD>
{
/* constructors... */
/* properties */
public long WholeNumbers
{
get;
}
public long DigitsAfterDecimal
{
get;
}
// other properties and fields...
/* operators... */
/* other methods... */
}
/* other structs of currency value types... */
}