Mega Code Archive

 
Categories / VB.Net / Data Types
 

Custom format with ToString

Public Class Temperature    Private m_Temp As Decimal    Public Sub New(temperature As Decimal)       Me.m_Temp = temperature    End Sub    Public ReadOnly Property Celsius() As Decimal       Get          Return Me.m_Temp       End Get       End Property    Public ReadOnly Property Kelvin() As Decimal       Get          Return Me.m_Temp + 273.15d          End Get    End Property    Public ReadOnly Property Fahrenheit() As Decimal       Get          Return Math.Round(CDec(Me.m_Temp * 9 / 5 + 32), 2)       End Get          End Property    Public Overrides Function ToString() As String       Return Me.ToString("C")    End Function    Public Overloads Function ToString(format As String) As String         If String.IsNullOrEmpty(format) Then format = "C"       format = format.Trim().ToUpperInvariant()             Select Case format          Case "F"             Return Me.Fahrenheit.ToString("N2") & " F"          Case "K"             Return Me.Kelvin.ToString("N2") & " K"          Case "C"             Return Me.Celsius.ToString("N2") & " C"          Case Else             Throw New FormatException(String.Format("The '{0}' format string is not supported.", format))       End Select          End Function End Class Public Module Example    Public Sub Main()       Dim temp1 As New Temperature(0d)       Console.WriteLine(temp1.ToString())       Console.WriteLine(temp1.ToString("C"))       Console.WriteLine(temp1.ToString("F"))       Console.WriteLine(temp1.ToString("K"))       Dim temp2 As New Temperature(-40d)       Console.WriteLine(temp2.ToString())       Console.WriteLine(temp2.ToString("C"))       Console.WriteLine(temp2.ToString("F"))       Console.WriteLine(temp2.ToString("K"))       Dim temp3 As New Temperature(16d)       Console.WriteLine(temp3.ToString())       Console.WriteLine(temp3.ToString("C"))       Console.WriteLine(temp3.ToString("F"))       Console.WriteLine(temp3.ToString("K"))       Console.WriteLine(String.Format("The temperature is now {0:F}.", temp3))    End Sub End Module