deebug

BTC.vb

Jul 12th, 2011
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Namespace Sitesource.Currency
  2.     Public Class BTC
  3.         Implements ICurrency
  4.         Private Const Symbol As String = "฿"
  5.         Private Const Code As String = "BTC"
  6.         Private _value As Decimal
  7.         ''' <summary>
  8.        ''' New
  9.        ''' </summary>
  10.        ''' <param name="value"></param>
  11.        ''' <remarks></remarks>
  12.        Public Sub New(ByVal value As Decimal)
  13.             _value = value
  14.         End Sub
  15.         ''' <summary>
  16.        ''' Parse
  17.        ''' </summary>
  18.        ''' <param name="value"></param>
  19.        ''' <returns></returns>
  20.        ''' <remarks></remarks>
  21.        Public Shared Function Parse(ByVal value As String) As BTC
  22.             Return New BTC(Decimal.Parse(value))
  23.         End Function
  24.         ''' <summary>
  25.        ''' Get currency code.
  26.        ''' </summary>
  27.        ''' <returns></returns>
  28.        ''' <remarks></remarks>
  29.        Public Function GetCurrencyCode() As String Implements ICurrency.GetCurrencyCode
  30.             Return Code
  31.         End Function
  32.         ''' <summary>
  33.        ''' Get currency symbol.
  34.        ''' </summary>
  35.        ''' <returns></returns>
  36.        ''' <remarks></remarks>
  37.        Public Function GetCurrencySymbol() As String Implements ICurrency.GetCurrencySymbol
  38.             Return Symbol
  39.         End Function
  40.         ''' <summary>
  41.        ''' ToString
  42.        ''' </summary>
  43.        ''' <returns></returns>
  44.        ''' <remarks></remarks>
  45.        Overrides Function ToString() As String
  46.             Return _value.ToString()
  47.         End Function
  48.         ''' <summary>
  49.        ''' Equals
  50.        ''' </summary>
  51.        ''' <param name="obj"></param>
  52.        ''' <returns></returns>
  53.        ''' <remarks></remarks>
  54.        Public Overrides Function Equals(ByVal obj As Object) As Boolean
  55.             If TypeOf obj Is BTC Then
  56.                 Return _value = CType(obj.Value, BTC).Value
  57.             ElseIf TypeOf obj Is DBNull Then
  58.                 Return False
  59.             Else
  60.                 Return _value = obj
  61.             End If
  62.         End Function
  63.         ''' <summary>
  64.        ''' Return a culture invariant string representation of the value
  65.        ''' </summary>
  66.        ''' <value></value>
  67.        ''' <returns></returns>
  68.        ''' <remarks></remarks>
  69.        Public ReadOnly Property InvariantString As String Implements ICurrency.InvariantString
  70.             Get
  71.                 Return _value.ToString(Globalization.CultureInfo.InvariantCulture)
  72.             End Get
  73.         End Property
  74.         ''' <summary>
  75.        ''' Value
  76.        ''' </summary>
  77.        ''' <value></value>
  78.        ''' <returns></returns>
  79.        ''' <remarks></remarks>
  80.        Public Property Value As Decimal Implements ICurrency.Value
  81.             Set(ByVal value As Decimal)
  82.                 _value = value
  83.             End Set
  84.             Get
  85.                 Return _value
  86.             End Get
  87.         End Property
  88.         Public Shared Operator -(ByVal a As BTC, ByVal b As BTC) As BTC
  89.             Return New BTC(a.Value - b.Value)
  90.         End Operator
  91.         Public Shared Operator +(ByVal a As BTC, ByVal b As BTC) As BTC
  92.             Return New BTC(a.Value + b.Value)
  93.         End Operator
  94.         Public Shared Operator <(ByVal a As BTC, ByVal b As BTC) As Boolean
  95.             Return a.Value < b.Value
  96.         End Operator
  97.         Public Shared Operator >(ByVal a As BTC, ByVal b As BTC) As Boolean
  98.             Return a.Value > b.Value
  99.         End Operator
  100.         Public Shared Operator <=(ByVal a As BTC, ByVal b As BTC) As Boolean
  101.             Return a.Value <= b.Value
  102.         End Operator
  103.         Public Shared Operator >=(ByVal a As BTC, ByVal b As BTC) As Boolean
  104.             Return a.Value >= b.Value
  105.         End Operator
  106.         Public Shared Operator =(ByVal a As BTC, ByVal b As BTC) As Boolean
  107.             If a Is Nothing OrElse b Is Nothing Then Return False
  108.             If a Is Nothing And b Is Nothing Then Return True
  109.             Return a.Value = b.Value
  110.         End Operator
  111.         Public Shared Operator <>(ByVal a As BTC, ByVal b As BTC) As Boolean
  112.             If a Is Nothing OrElse b Is Nothing Then Return False
  113.             If a Is Nothing And b Is Nothing Then Return True
  114.             Return a.Value <> b.Value
  115.         End Operator
  116.         Public Shared Widening Operator CType(ByVal a As BTC) As String
  117.             Return a.Value.ToString()
  118.         End Operator
  119.         Public Shared Widening Operator CType(ByVal a As BTC) As Decimal
  120.             Return a.Value
  121.         End Operator
  122.         Public Shared Operator /(ByVal a As BTC, ByVal b As Int32) As BTC
  123.             Return New BTC(a.Value / 2)
  124.         End Operator
  125.     End Class
  126. End Namespace
Advertisement
Add Comment
Please, Sign In to add comment