I was curious about the relative speeds of character to integer conversions, so I did some benchmarking. I got these results:

Char.GetNumericValue("x"c) -- 4391 ms
Asc("x"c) -- 1797 ms
AscW("x"c) -- 734 ms
System.Convert.ToInt32("x"c) -- 532 ms
System.Convert.ToInt16("x"c) -- 671 ms
System.Convert.ToByte("x"c) -- 688 ms
MyAsc("x"c) -- 2281 ms

In order to see this yourself, insert this into a function:
VB Code:
  1. Dim iTick As Integer
  2.         Dim iIterations As Integer = 100000000
  3.         Dim i As Integer
  4.  
  5.  
  6.         iTick = Environment.TickCount
  7.         For i = 0 To iIterations
  8.             Char.GetNumericValue("x"c)
  9.         Next
  10.         Console.WriteLine("Char.GetNumericValue(""x""c) -- {0} ms", Environment.TickCount - iTick)
  11.  
  12.         iTick = Environment.TickCount
  13.         For i = 0 To iIterations
  14.             Asc("x"c)
  15.         Next
  16.         Console.WriteLine("Asc(""x""c) -- {0} ms", Environment.TickCount - iTick)
  17.  
  18.         iTick = Environment.TickCount
  19.         For i = 0 To iIterations
  20.             AscW("x"c)
  21.         Next
  22.         Console.WriteLine("AscW(""x""c) -- {0} ms", Environment.TickCount - iTick)
  23.  
  24.         iTick = Environment.TickCount
  25.         For i = 0 To iIterations
  26.             System.Convert.ToInt32("x"c)
  27.         Next
  28.         Console.WriteLine("System.Convert.ToInt32(""x""c) -- {0} ms", Environment.TickCount - iTick)
  29.  
  30.         iTick = Environment.TickCount
  31.         For i = 0 To iIterations
  32.             System.Convert.ToInt16("x"c)
  33.         Next
  34.         Console.WriteLine("System.Convert.ToInt16(""x""c) -- {0} ms", Environment.TickCount - iTick)
  35.  
  36.         iTick = Environment.TickCount
  37.         For i = 0 To iIterations
  38.             System.Convert.ToByte("x"c)
  39.         Next
  40.         Console.WriteLine("System.Convert.ToByte(""x""c) -- {0} ms", Environment.TickCount - iTick)
  41.  
  42.         iTick = Environment.TickCount
  43.         For i = 0 To iIterations
  44.             MyAsc("x"c)
  45.         Next
  46.         Console.WriteLine("MyAsc(""x""c) -- {0} ms", Environment.TickCount - iTick)
MyAsc is included below simply to demonstrate that encapsulating the fastest method above in a function is not a good solution:
VB Code:
  1. Private Function MyAsc(ByVal c As Char) As Integer
  2.         Return System.Convert.ToInt32(c)
  3.     End Function