我认为问题在于您试图从 Char 中减去 64 - 当我尝试您的代码时,我得到一个未为类型“Char”和“Integer”定义的“-”运算符。
尝试使用Asc
获取 ASCII 值:
Dim text As String = textbox1.Text
Dim sum As Integer = 0
For Each c As Char in text
sum += Asc(c) - 64
Next
但是,对于 SUM,这将为您提供 53,而不是 10。您使用什么系统来确定给定字母的数值?您发布的代码表示您减去 64 - 如果不是 ASCII,那么数字 64 是什么?
编辑
假设您已经为每个字母预定义了数值,我会将它们放在 a 中Dictionary
,其中 Char 作为键,Integer 作为值。然后你可以做这样的事情:
Dim letterValues As New Dictionary(Of Char, Integer)
letterValues.Add("S", 2)
letterValues.Add("U", 3)
letterValues.Add("M", 5)
' You can add every letter with its predefined value this way
Dim text As String = textbox1.Text
Dim sum As Integer = 0
For Each c As Char in text
sum += letterValues(c)
Next
结果将是 10。