类型的值不能转换为字符串VB
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类型的值不能转换为字符串VB相关的知识,希望对你有一定的参考价值。
严重级代码描述项目文件行抑制状态错误BC30332类型'Integer()'的值不能转换为'String()',因为'Integer'不是从'String'派生的。 AlgorithmMk(强力释放)
怎么修?那条线:TxtGamblerOutput.AppendText(String.Join(" ", output.ToArray) & vbCrLf)
Private Sub BttGamblerInput_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BttGamblerInput.Click
On Error Resume Next
Dim value As Integer
Dim values As New List(Of String)
For Each strValue As String In TxtGamblerImput.Text.Split(" ".ToCharArray, StringSplitOptions.RemoveEmptyEntries)
If Integer.TryParse(strValue.Trim, value) Then
values.Add(value)
End If
Next
Dim curRev As String
Dim Rev As New Revision("-0+", New String("-", values.Count))
Dim output As New List(Of Integer)
TxtGamblerOutput.Clear()
curRev = Rev.CurrentRevision
While curRev.Length = values.Count
output.Clear()
For i As Integer = 0 To curRev.Length - 1
Select Case curRev(i)
Case "-"
output.Add(values(i) - 1)
Case "0"
output.Add(values(i))
Case "+"
output.Add(values(i) + 1)
End Select
Next
TxtGamblerOutput.AppendText(String.Join(" ", output.ToArray) & vbCrLf)
curRev = Rev.NextRevision
End While
End Sub
答案
我不知道Revision
类是什么..问题可能在那里,但你的For..Next
循环可能是问题..
尝试添加Integer.Parse
,如下所示。
正如@andrewmorton所说。您应始终在所有代码的顶部使用Option Strict On
,或者谷歌如何更改您的设置以默认启用它。永远不要使用On Error Resume Next
。它是旧代码,适用于懒惰的程序员。
另外你会注意到我在你的c
声明中的字符串之后添加了Select Case
。这是为了让编译器知道你正在检查Char
类型而不是String
类型,否则,它会对那些有关,那么你有Option Strict On
For i As Integer = 0 To curRev.Length - 1
Select Case curRev(i)
Case "-"c
output.Add(Integer.Parse(values(i)) - 1)
Case "0"c
output.Add(Integer.Parse(values(i)))
Case "+"c
output.Add(Integer.Parse(values(i)) + 1)
End Select
Next
以上是关于类型的值不能转换为字符串VB的主要内容,如果未能解决你的问题,请参考以下文章
在 vb.net 中将“字符串”转换为“SQlCommand”