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
相关产品推荐
相关产品推荐

