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
Related examples in the same category
1. | Standard Numeric Format Strings: C2 | | |
2. | Standard Numeric Format Strings: C, C3 | | |
3. | Standard Numeric Format Strings: D | | |
4. | Standard Numeric Format Strings for negative value: D | | |
5. | Standard Numeric Format Strings: E,e | | |
6. | Standard Numeric Format Strings: F | | |
7. | Standard Numeric Format Strings: G | | |
8. | Standard Numeric Format Strings: N | | |
9. | Standard Numeric Format Strings: N | | |
10. | Standard Numeric Format Strings: P | | |
11. | Standard Numeric Format Strings: r | | |
12. | Standard Numeric Format Strings: X, x | | |
13. | Custom double value format: 00000 | | |
14. | Custom double value format: 0.00 | | |
15. | Custom double value format: 00.00 | | |
16. | Custome double value format: 00.00 and CultureInfo.CreateSpecificCulture("da-DK") | | |
17. | Double value format: 0.0 | | |
18. | Double value format: #,# | | |
19. | Double value format: #,# and CultureInfo.CreateSpecificCulture("el-GR") | | |
20. | Custome number format: ToString("#.##", CultureInfo.InvariantCulture) | | |
21. | Double value format: ToString("[##-##-##]") | | |
22. | Double value format: ToString("#") | | |
23. | Double value format: (###) ###-#### | | |
24. | Number format: #,# | | |
25. | Number format: #,##0,, | | |
26. | Number format: #,, | | |
27. | Number format: #,,, | | |
28. | Number format: #,##0,, | | |
29. | Double number format: "#0.##%" | | |
30. | Format with custom character | | |
31. | Double value format: 0.###E+0 | | |
32. | Double value format: 0.###E+000 | | |
33. | Double value format: 0.###E-000 | | |
34. | Format escape: \# | | |
35. | Format escape: \\(back slash) | | |
36. | Positive double value format: ##;(##) | | |
37. | Negative double value format: ##;(##) | | |
38. | Double value format: ##;(##);**Zero** | | |
39. | Double value format: (###) ###-#### | | |
40. | Integer format: # | | |
41. | Number format: 0.0 vs #,# | | |
42. | Number format: ###-#### | | |
43. | Number format: 0 and # | | |
44. | Number format: 0, # and , | | |
45. | Number format: #,,, | | |
46. | Number format: #0.##% | | |
47. | Number format: CultureInfo.InvariantCulture | | |
48. | Number format: E | | |
49. | Number format: escape | | |
50. | Number format: free text | | |
51. | Number format: phone number format | | |
52. | Add free text to number format | | |
53. | Double.ToString Method and Number format | | |
54. | Number format and Culture info:G | | |
55. | Number format and Culture info: C | | |
56. | Number format and Culture info:E04 | | |
57. | Number format and Culture info:F | | |
58. | Number format and Culture info:N | | |
59. | Number format and Culture info:P | | |
60. | Converts string in style and culture-specific format to double | | |
61. | Integer format: X | | |
62. | Format Enum: "G", "F", "D", "X" | | |
63. | Byte value format: X4 | | |
64. | Date format: D | | |
65. | Format Date value: %M | | |
66. | Date value format: MMMM dd, yyyy (dddd) | | |
67. | Decimal format: C3 | | |
68. | Implements IFormatProvider, ICustomFormatter | | |