字符串未在while循环中分配

时间:2015-07-05 00:01:28

标签: vb.net

我正在从FTP服务器读取文件,我正在尝试使用1144 679.5999998 1144 679.600001 1143.75 679.6000003 1143.75 679.5999993 1143 679.6000009 循环将下一行分配给while并检查它是否为空({{1 }})。 问题是我已经习惯String了,这是我第一次尝试Nothing。你能告诉我,如果我做错了导致它吗?

C#

我在VB中测试了相同的代码并且它完美无缺,我不知道为什么它在Dim request As WebClient = New WebClient() Dim url As String = "ftp://ftp.harelwebs.net/" + "Default.aspx" request.Credentials = New NetworkCredential("USERNAME", "PASS") Try Dim stream As IO.Stream = request.OpenRead(url) Dim sr As StreamReader = New StreamReader(stream) Dim line As String = Nothing While (stream.CanRead And (line = sr.ReadLine()) <> Nothing) MessageBox.Show(line) End While stream.Close() sr.Close() Catch ex As WebException MessageBox.Show("Error.. " + ex.Message) 中不起作用。

1 个答案:

答案 0 :(得分:2)

不幸的是,您无法在测试子句中的VB.NET中分配值。原因是=用于分配和比较,在案例中会非常混乱和含糊不清。

解决问题的方法就是:

Dim line As String = sr.ReadLine()
While (stream.CanRead And line <> Nothing)
    MessageBox.Show(line)
    line = sr.ReadLine()
End While

如果有可能存在要将line值设置为Nothing以阻止循环运行的实例,则可以在if语句中包装赋值。