我从未真正学过VB.NET,你会怎么用VB.NET写这个?
以下是代码:
System.IO.StreamReader file = new System.IO.StreamReader(ofd_tracking_file.FileName);
while ((line = file.ReadLine()) != null)
{
}
会是这样的吗?
Dim file As System.IO.StreamReader = New System.IO.StreamReader(ofd_tracking_file.FileName)
While Not line = file.ReadLine() = Nothing
End While
不,转换器不起作用,我已经尝试过了。
答案 0 :(得分:1)
C#代码使用表达式中的赋值 - 这些在VB中不可用。 VB等价物是:
Dim file As New System.IO.StreamReader(ofd_tracking_file.FileName)
line = file.ReadLine()
Do While line IsNot Nothing
...
line = file.ReadLine()
Loop
你可以避免额外的'ReadLine'语句,如果你可以通过'Exit Do'来无条件循环 - 只是陈述选项:
Do
line = file.ReadLine()
If line Is Nothing Then Exit Do
...
Loop
答案 1 :(得分:0)
这应该使用经典模式:
Dim file As New System.IO.StreamReader(ofd_tracking_file.FileName)
Dim line = file.ReadLine()
While line IsNot Nothing
'blah blah
line = file.ReadLine()
End While
这种方法的好处是只需要一个保护声明,但你需要有两个ReadLine
声明。
就个人而言,Telerik建议的InlineAssignHelper
是一种糟糕的模式,只会使你的代码不清楚。
答案 2 :(得分:0)
如果您担心代码可读性,那么在您的情况下使用纯vb.net
代码将是更好的选择。
Using reader As New StreamReader(ofd_tracking_file.FileName)
Dim line As String = Nothing
Do
line = reader.ReadLine()
Debug.Write(line)
Loop Until line Is Nothing
End Using
或使用EndOfStream
属性在我看来会更具可读性(感谢@Visual Vincent)
Using reader As New StreamReader(ofd_tracking_file.FileName)
While reader.EndOfStream = false
Dim line As String = reader.ReadLine()
'use line value
End While
End Using