【问题标题】:Conversion from string (x) to type 'Integer' is not valid从字符串 (x) 到类型“整数”的转换无效
【发布时间】:2018-03-22 19:01:48
【问题描述】:

为课堂做点什么,我完全被困住了,即使是老师也似乎不确定。任何回应表示赞赏。这是导致问题的第一条打印线: "在 Microsoft.VisualBasic.dll 中发生了第一次机会异常,类型为 'System.InvalidCastException'

附加信息:从字符串“1:夜 F3,购买 10 张门票”到类型“整数”的转换无效。”

Dim filename As String
    Dim fridaytickets As Integer
    fridaytickets = 0
    filename = "Z:\Computing Science\S5 (Higher)\Coursework Assessment\output.txt"
    FileOpen(1, filename, OpenMode.Output)
    For x = 1 To 300
        If Mid(TicketID(x), 1, 1) = "F" Then
            PrintLine((x) & ": Night " & TicketID(x) & ", " & TicketNo(x) & " tickets purchased. £" & (TicketNo(x) * 10) & " made.")
            fridaytickets = fridaytickets + TicketNo(x)
        End If
        PrintLine(fridaytickets & " were purchased for Friday night.")
        PrintLine("£" & (fridaytickets * 10) & " was made.")

【问题讨论】:

    标签: visual-studio-2012


    【解决方案1】:

    这是行:

    PrintLine(fridaytickets & " were purchased for Friday night.")
    

    你的fridaytickets是一个整数,奇怪的是,&似乎被当作二元运算符,所以两边都是整数。它不应该是这样,但也许它是一个错误或版本依赖。或者只是普通串联运算符的重载。

    无论如何,正确的方法是准备要连接的字符串:

    PrintLine(fridaytickets.toString & " were purchased for Friday night.")
    

    【讨论】:

    • 和相同的:x.toString 在第一个 PrintLine 中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-13
    • 2020-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多