类型的值不能转换为字符串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中CSTR是啥函数(需要详细介绍)

在 vb.net 中将“字符串”转换为“SQlCommand”

将 vb.net 类对象转换为 vb.net 中的 JSON 字符串

vb中啥类型的变量之间可以相互转换

“字符串?”类型的值不能分配给“字符串”类型的变量颤动

VB语言教程