为什么str我的VS2005 IDE中的以下VB.NET代码设置为Nothing:
If Trim(str = New StreamReader(OpenFile).ReadToEnd) <> "" Then
Button2.Enabled = True
TextBox1.Text = fname
End If
Run Code Online (Sandbox Code Playgroud)
OpenFile 是一个返回一个的函数 FileStream
编辑:如果包含修剪的上述行不正确,有没有办法只在一行中达到预期的结果?
代码永远不会设置str:
If Trim(str = New StreamReader(OpenFile).ReadToEnd) <> "" Then
Run Code Online (Sandbox Code Playgroud)
此行未设置str,它将其与读取文件的结果进行比较.
在VB中,=运算符有两个含义,具体取决于上下文.如果在语句中使用,它会将右侧表达式分配给左侧表达式.如果在任何其他上下文中使用(即在表达式中),则执行相等比较,而不是赋值.
因此,在VB中,您必须编写以下内容:
str = New StreamReader(OpenFile()).ReadToEnd()
If str.Trim() <> "" Then …
Run Code Online (Sandbox Code Playgroud)
请注意,我已经Trim通过方法调用替换了自由函数,以使代码与常见的.NET编码实践更加一致.