01.
Imports
System
02.
Imports
System.Linq
03.
04.
Public
Class
UnitConverter
05.
Private
dicFormula
As
New
Dictionary(Of
String
, List(Of Formula))
06.
Sub
New
()
07.
dicFormula.Add(
"mm2cm"
,
New
List(Of Formula) From {
08.
New
Formula()
With
{.SourceDesc =
"mm2cm"
, .Ratio = 10, .Remark =
"มิลลิเมตร 2 เซนติเมตร"
}
09.
})
10.
dicFormula.Add(
"mm2m"
,
New
List(Of Formula) From {
11.
New
Formula()
With
{.SourceDesc =
"mm2m"
, .Ratio = 1000, .Remark =
"มิลลิเมตร 2 เมตร"
}
12.
})
13.
dicFormula.Add(
"mm2km"
,
New
List(Of Formula) From {
14.
New
Formula()
With
{.SourceDesc =
"mm2km"
, .Ratio = 1000000, .Remark =
"มิลลิเมตร 2 กิโลเมตร"
}
15.
})
16.
dicFormula.Add(
"cm2m"
,
New
List(Of Formula) From {
17.
New
Formula()
With
{.SourceDesc =
"mm2cm"
, .Ratio = 100, .Remark =
"มิลลิเมตร 2 เซนติเมตร"
}
18.
})
19.
dicFormula.Add(
"cm2km"
,
New
List(Of Formula) From {
20.
New
Formula()
With
{.SourceDesc =
"mm2m"
, .Ratio = 100000, .Remark =
"มิลลิเมตร 2 เมตร"
}
21.
})
22.
dicFormula.Add(
"m2km"
,
New
List(Of Formula) From {
23.
New
Formula()
With
{.SourceDesc =
"mm2km"
, .Ratio = 1000, .Remark =
"มิลลิเมตร 2 กิโลเมตร"
}
24.
})
25.
End
Sub
26.
Public
Function
Calculate(
ByVal
n
As
Double
,
ByVal
key
As
String
)
As
Double
27.
Dim
iRet
As
Double
= 0.0
28.
Try
29.
If
dicFormula.ContainsKey(key)
Then
30.
iRet = n / dicFormula.Item(key)(0).Ratio
31.
End
If
32.
Catch
ex
As
Exception
33.
34.
End
Try
35.
Return
iRet
36.
End
Function
37.
38.
Private
Class
Formula
39.
Sub
New
()
40.
End
Sub
41.
Public
Property
SourceDesc
As
String
42.
Public
Property
Ratio
As
Double
= 1.0
43.
Public
Property
Remark
As
String
44.
End
Class
45.
46.
47.
Public
Class
UnitModel
48.
Public
Property
CategoryID
As
Integer
49.
Public
Property
Code
As
String
50.
Public
Property
Description
As
String
51.
52.
Sub
New
(
ByVal
s
As
String
, desc
As
String
)
53.
Code = s
54.
Description = desc
55.
End
Sub
56.
End
Class
57.
End
Class