Visual Studio 2012 を使用しており、次のコード ブロックがあります。このコードは、特定のファイルのファイル タイプをチェックします (そのため、True/False が返されます)。エラーが発生した場合も false を返します。初期化する前に fs/br 変数を使用しているという警告が表示されますが、これは事実です。そのため、IsNothing ステートメントを使用していますが、IsNothing ステートメントで警告が表示されます。Try /Catch ブロックの外側にfs = New FileStream(fn, FileMode.Open)
andステートメントを配置したくないため、それを回避する方法がわかりません。br = ...
コード自体は機能するので、警告は実際には問題になりませんが、それでも気になります。警告なしで同じ安全性を提供するためにこのブロックを変更する方法を知っている人はいますか?
VB.NET または C# の両方の回答を歓迎します。
Dim fs As FileStream
Dim br As BinaryReader
Try
fs = New FileStream(fn, FileMode.Open) 'Open the file
br = New BinaryReader(fs) 'Initilize the reader
'File reading code omitted here
br.Close() 'Close the reader and underlying stream
Catch
If Not IsNothing(fs) Then fs.Close() 'Warning here
If Not IsNothing(br) Then br.Close() 'and here
Return False
End Try