none
vb.net2010 new创建的对象dispose RRS feed

  • 问题

  • 警告 23 CA2000 : Microsoft.Reliability : 在方法 'frmTran.frmTran_Load(Object, EventArgs)' 中,'lblCarrier' 对象未按所有异常路径释放。请在对 'lblCarrier' 对象的所有引用超出范围之前,对该对象调用 System.IDisposable.Dispose。 E:\myData\Visual Studio 2010\Projects\backup\PMS\PMS_YIGU\frmTran.vb 323 PMS_YIGU

    我的程序大致如下,运行代码分析时,出现上述警告,请问该问题如何解决?

    for i as integer = 1 to 10

    dim lblCarrier as new label

    with lblCarrier

    ……

    end with

    lstCarriers.add(lblCarrier)       'lblCarriers在模块声明段声明为列表集合

    next

    2013年4月9日 1:27

答案

  • 我把代码剪过来贴过去问题已经找到了,都是被MSDN那个CA2000搞混淆了,这样就没问题了,但还是特别感谢您的乐于助人的工作作风,谢谢您,有新的问题,我将继续向您求教。

    Public Class Form1

    Dim lstCarriers As New List(Of Label)

    Dim lblCarrier As  Label

        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            For i As Integer = 0 To 10

                lblCarrier = New Label

                With lblCarrier
                    .Size = New Size(100, 15)
                    .Left = i * 100
                    .Top = i * 50
                    .AutoSize = False
                    .Text = "出现了错误"
                    .BackColor = Color.Red
                    .Visible = True
                    .Parent = Me
                End With
                lstCarriers.Add(lblCarrier)

            Next
        End Sub
    End Class


    2013年4月9日 6:59

全部回复