2013-04-23 61 views
0

已更新,以包含更多代码。vb.net未使用的本地变量

vb.net 2012给我三个警告代码下面,说未使用的变量。 temp,filetype和inde都被警告为未使用。

Private Sub Next_Image() 
    ' TO Do - is same, maybe make a function? Don't know if its worth it though 
msgbox(My.Computer.FileSystem.GetFileInfo(img_picture.ImageLocation).Extension) 
exit sub 
    If changes = True Then 
     If filesettings(2) = 0 Then 
      If MessageBox.Show("Save Changes?", "Save Changes", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then 
       Dim filetype As System.Drawing.Imaging.ImageFormat 
       If My.Computer.FileSystem.GetFileInfo(img_picture.ImageLocation).Extension.ToLower = ".png" Then 
        filetype = System.Drawing.Imaging.ImageFormat.Png 
       ElseIf My.Computer.FileSystem.GetFileInfo(img_picture.ImageLocation).Extension.ToLower = ".jpg" OrElse My.Computer.FileSystem.GetFileInfo(img_picture.ImageLocation).Extension.ToLower = ".jpeg" Then 
        filetype = System.Drawing.Imaging.ImageFormat.Jpeg 
       ElseIf My.Computer.FileSystem.GetFileInfo(img_picture.ImageLocation).Extension.ToLower = ".bmp" Then 
        filetype = System.Drawing.Imaging.ImageFormat.Bmp 
       ElseIf My.Computer.FileSystem.GetFileInfo(img_picture.ImageLocation).Extension.ToLower = ".gif" Then 
        filetype = System.Drawing.Imaging.ImageFormat.Gif 
       ElseIf My.Computer.FileSystem.GetFileInfo(img_picture.ImageLocation).Extension.ToLower = ".tiff" Then 
        filetype = System.Drawing.Imaging.ImageFormat.Tiff 
       End If 
       img_picture = Nothing 
       imageadjust.Save(filename, filetype) 
      End If 
     End If 
    End If 
    If Not img_picture.ImageLocation = Nothing Then 
     Dim inde As Integer = files.IndexOf(filename) 
     If inde = files.Count - 1 Then 
      img_picture.ImageLocation = files(0) 
     Else 
      img_picture.ImageLocation = files(inde + 1) 
     End If 
     filename = img_picture.ImageLocation 
     Me.Text = filename.Substring(filename.LastIndexOf("\") + 1) & " - Picture Viewer" 

     If filesettings(0) = 1 Then 
      img_picture.SizeMode = PictureBoxSizeMode.CenterImage 
     ElseIf filesettings(0) = 2 Then 
      img_picture.SizeMode = PictureBoxSizeMode.Zoom 
     Else 
      Dim temp As New Bitmap(filename) 
      Me.img_picture.Refresh() 
      If temp.Width > Me.img_picture.Width OrElse temp.Height > Me.img_picture.Height Then 
       Me.img_picture.SizeMode = PictureBoxSizeMode.Zoom 
      Else 
       Me.img_picture.SizeMode = PictureBoxSizeMode.CenterImage 
      End If 
      temp.Dispose() 
     End If 
    End If 
End Sub 

请原谅代码,我刚刚开始添加东西,所以有些可能是多余的。但是我不明白为什么temp,inde和filetype被声明为未使用。

+0

对不起,我最初忘了添加什么被宣布为未使用。文件类型被宣布为未使用。 – 2013-04-23 04:29:09

回答

2

将filetype设置为空(然后再进行测试)应删除该错误。

而且,使用select case语句应该整理一下代码:

Dim filetype As System.Drawing.Imaging.ImageFormat 
Select My.Computer.FileSystem.GetFileInfo(img_picture.ImageLocation).Extension.ToLower 
    Case ".png" 
     filetype = System.Drawing.Imaging.ImageFormat.Png 
    Case ".jpg", ".jpeg" 
     filetype = System.Drawing.Imaging.ImageFormat.Jpeg 
    Case ".bmp" 
     filetype = System.Drawing.Imaging.ImageFormat.Bmp 
    Case ".gif" 
     filetype = System.Drawing.Imaging.ImageFormat.Gif 
    Case ".tif", ".tiff" 
     filetype = System.Drawing.Imaging.ImageFormat.Tiff 
    Case Else 
     filetype = Nothing 
End Select 
If filetype IsNot Nothing Then 
    img_picture = Nothing 
    imageadjust.Save(filename, filetype) 
End If 
+0

我试图将文件类型设置为某种或没有,但它似乎仍然在警告.... 我刚才意识到,警告也显示其他变量使用的事先不显示问题。 – 2013-04-23 04:30:28

+0

我想我会用select case。它看起来更干净。 – 2013-04-23 04:37:37

+1

啊白痴错误 - 测试时我添加了一个msgbox和一个退出子命令。当然,退出的所有内容都不会发生。你是对的,但设置是没有任何帮助。 – 2013-04-23 05:06:00

1
img_picture = Nothing 

所以你在这里声明变量为空,然后永远不会从您发布有什么用。

你使用变量吗?就在if开关里面?无论哪种方式看起来并不需要。

此外,测试您的扩展字符串值只有两个问题......它可能无法正常工作,它是一个马虎。如果你碰巧找到一个不在你的情况下的文件/否则它将失败,并且还有其他可能性。

This is really the better way to test/check,IMO。虽然你将不得不调整它为VB.Net

+0

对不起,没有指出实际问题。 filetype是我遇到麻烦的变量。 – 2013-04-23 04:38:25

+0

是的,字符串方法是我问一个更好的方法。我会看看那个谢谢。 – 2013-04-23 05:01:32

1

添加所有的代码后,你可以看到我的错误。我在msgbox中检查一个值时添加了一个exit子命令,并忘记删除它。

感谢这两个答案,尽管提供更干净的代码。