You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS2017 Community版VB.NET中IsNothing报错,求助解决

解决VS2017中VB.NET IsNothing的错误问题

嘿,我来帮你搞定这个问题!你遇到的红色波浪线是因为VS2017使用的VB.NET版本比VS2013更高,微软在新版本里更推荐用.NET原生的空值判断运算符,而IsNothing属于旧的VB兼容函数,在默认的严格编译设置下会被标记为错误(或者编辑器把警告显示成了错误)。

问题拆解

你的代码还有个小逻辑瑕疵:一开始把line初始化成了空字符串"",所以第一次While Not IsNothing(line)的判断肯定成立(空字符串不等于Nothing),然后才去读取文件行。其实更合理的写法是先读行再判断,这样能避免多余的循环步骤。

修复方案

把IsNothing替换成VB.NET推荐的Is Nothing/IsNot Nothing运算符,同时优化你的代码逻辑:

Imports System
Imports System.IO
Module Program
    Sub Main()
        Using myReader As StreamReader = New StreamReader("values.txt")
            Dim line As String = myReader.ReadLine()
            While line IsNot Nothing
                Console.WriteLine(line)
                line = myReader.ReadLine()
            End While
        End Using ' 用Using语句会自动关闭流,不用手动调用Close()
        Console.ReadLine()
    End Sub
End Module

额外优化建议

  • 用Using语句管理StreamReader更安全,它会在代码块结束时自动释放资源,不用担心忘记关闭流导致的问题。
  • 先读取第一行再进入循环,逻辑更清晰,还能省去循环内部的二次空值判断。

如果你非要保留原来的逻辑(虽然不推荐),只需要把所有IsNothing(line)替换成line Is Nothing就行:

While line IsNot Nothing
    line = myReader.ReadLine()
    If line IsNot Nothing Then
        Console.WriteLine(line)
    End If
End While

这样就能解决VS2017里的红色波浪线问题啦!

内容的提问来源于stack exchange,提问作者Sam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 00:27:31