单行Readline()!在VB.NET中= null

vin*_*yan 1 vb.net while-loop

可能重复:
如何在Visual Basic中使用while循环读取StreamReader?

在C#中,我将循环一个streamreader,如下所示.

while ((line = reader.ReadLine()) != null)
{
    list.Add(line); // Add to list.
    Console.WriteLine(line); // Write to console.
}
Run Code Online (Sandbox Code Playgroud)

什么是VB.NET中的等价物?

我试过了

while ((line = reader.ReadLine()) IsNot Nothing)
Run Code Online (Sandbox Code Playgroud)

但它没有用.

Hei*_*nzi 11

在C#中,((line = reader.ReadLine()) != null)表达式中赋值.VB不支持这一点.因此,你将不得不拆分

  • 任务line = reader.ReadLine()
  • 比较line != null(在VB: line IsNot Nothing)

有很多方法可以做到这一点.Prasanna 在一个平行的答案中提出了一个.这是我喜欢的,因为你不需要重复这个ReadLine电话:

Do
    Dim line As String = reader.ReadLine()
    If line Is Nothing Then Exit Do
    Console.WriteLine(line)
Loop
Run Code Online (Sandbox Code Playgroud)