防止在Try中未赋值的变量发出警告

Pee*_*Haa 1 .net vb.net try-catch try-catch-finally

我在互联网上找到了一些代码如下(稍加修改).

它只是请求网页的内容.

Private Sub readWebpage(ByVal url As String)
    Dim Str As System.IO.Stream
    Dim srRead As System.IO.StreamReader
    Try
        ' make a Web request
        Dim req As System.Net.WebRequest = System.Net.WebRequest.Create(url)
        Dim resp As System.Net.WebResponse = req.GetResponse
        Str = resp.GetResponseStream
        srRead = New System.IO.StreamReader(Str)
        ' read all the text 
        textContent.text = srRead.ReadToEnd
    Catch ex As Exception
        MsgBox(ex.Message, MsgBoxStyle.Critical, "Unable to download content from: " & url)
    Finally
        srRead.Close()
        Str.Close()
    End Try
End Sub
Run Code Online (Sandbox Code Playgroud)

但是我得到两个警告:

Warning 1   Variable 'srRead' is used before it has been assigned a value. A null reference exception could result at runtime.


Warning 2   Variable 'Str' is used before it has been assigned a value. A null reference exception could result at runtime.
Run Code Online (Sandbox Code Playgroud)

我知道我可以简单地忘记Finally并将代码添加到try块中.

这是可行的方法,还是可以使用不同的方法来阻止警告?

在此先感谢您的启发!:)

dr.*_*vil 10

你可以简单地将它们设置为Nothing,这样你就会通知编译器你知道你在做什么:)

Dim Str As System.IO.Stream = Nothing
Run Code Online (Sandbox Code Playgroud)