我想知道在类级别为类的过程使用变量的足够方法是什么。我有两个过程位于同一类中,并且大多数变量对于这两个过程都是通用的。我如何声明这个变量。
Public Class modBuild
Public Shared Sub GetParameterPAOut()
Dim PA As IScrSubVarGroup
Dim SubvarGroups As IScrNamedObjectList
Dim SubvarGroup As IScrSubVarGroup
Dim nSubvarGroup As Integer
Dim Subvars As IScrNamedObjectList
Dim Subvar As IScrSubVar
Dim nSubvar As Integer
PA = Mdl.findElement("$G_PA", False)
Subvars = PA.getSubvarList(False)
nSubvar = Subvars.count
SubvarGroups = PA.getSubvarGroupList(False)
nSubvarGroup = SubvarGroups.count
Try
For i As Integer = 0 To nSubvar - 1
Subvar = Subvars.item(i)
If Subvar.intent.val = 0 Then
dgvBuildSubvarPa.Rows.Add("Main", Subvar.name)
End If
Next
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Public Shared Sub GetParameterMPOut()
Dim MP As IScrSubVarGroup
Dim SubvarGroups As IScrNamedObjectList
Dim SubvarGroup As IScrSubVarGroup
Dim nSubvarGroup As Integer
Dim Subvars As IScrNamedObjectList
Dim Subvar As IScrSubVar
Dim nSubvar As Integer
MP = Mdl.findElement("$G_MP", False)
Subvars = MP.getSubvarList(False)
nSubvar = Subvars.count
SubvarGroups = MP.getSubvarGroupList(False)
nSubvarGroup = SubvarGroups.count
Try
For i As Integer = 0 To nSubvar - 1
Subvar = Subvars.item(i)
If Subvar.intent.val = 0 Then
dgvBuildSubvarMp.Rows.Add("Main", Subvar.name)
End If
Next
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
End Class
特别是我想在课程顶部和程序外部使用以下变量。
Public Class modBuild
Dim PA As IScrSubVarGroup
Dim MP As IScrSubVarGroup
Dim SubvarGroups As IScrNamedObjectList
Dim SubvarGroup As IScrSubVarGroup
Dim nSubvarGroup As Integer
Dim Subvars As IScrNamedObjectList
Dim Subvar As IScrSubVar
Dim nSubvar As Integer
Public Shared Sub GetParameterPAOut()
PA = Mdl.findElement("$G_PA", False)
Subvars = PA.getSubvarList(False)
nSubvar = Subvars.count
SubvarGroups = PA.getSubvarGroupList(False)
nSubvarGroup = SubvarGroups.count
Try
For i As Integer = 0 To nSubvar - 1
Subvar = Subvars.item(i)
If Subvar.intent.val = 0 Then
dgvBuildSubvarPa.Rows.Add("Main", Subvar.name)
End If
Next
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Public Shared Sub GetParameterMPOut()
Dim MP As IScrSubVarGroup
Dim SubvarGroups As IScrNamedObjectList
Dim SubvarGroup As IScrSubVarGroup
Dim nSubvarGroup As Integer
Dim Subvars As IScrNamedObjectList
Dim Subvar As IScrSubVar
Dim nSubvar As Integer
MP = Mdl.findElement("$G_MP", False)
Subvars = MP.getSubvarList(False)
nSubvar = Subvars.count
SubvarGroups = MP.getSubvarGroupList(False)
nSubvarGroup = SubvarGroups.count
Try
For i As Integer = 0 To nSubvar - 1
Subvar = Subvars.item(i)
If Subvar.intent.val = 0 Then
dgvBuildSubvarMp.Rows.Add("Main", Subvar.name)
End If
Next
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
End Class
它们是相同的变量名称,但会根据您调用的方法包含不同的信息。将这些变量保留在您的方法中。仅共享包含相同信息的变量。
相反,我从两种方法中提取了类似的逻辑并将其放入另一种方法中。这更有意义。
Public Class modBuild
Public Shared Sub GetParameterPAOut()
Dim PA As IScrSubVarGroup
PA = Mdl.findElement("$G_PA", False)
BuildGridView(PA, dgvBuildSubvarPa)
End Sub
Public Shared Sub GetParameterMPOut()
Dim MP As IScrSubVarGroup
MP = Mdl.findElement("$G_MP", False)
BuildGridView(MP, dgvBuildSubvarMp)
End Sub
Private Shared Sub BuildGridView(ByVal e As IScrSubVarGroup, ByVal dgv As DataGridView)
Dim SubvarGroups As IScrNamedObjectList
Dim SubvarGroup As IScrSubVarGroup
Dim nSubvarGroup As Integer
Dim Subvars As IScrNamedObjectList
Dim Subvar As IScrSubVar
Dim nSubvar As Integer
Subvars = e.getSubvarList(False)
nSubvar = Subvars.count
SubvarGroups = e.getSubvarGroupList(False)
nSubvarGroup = SubvarGroups.count
Try
For i As Integer = 0 To nSubvar - 1
Subvar = Subvars.item(i)
If Subvar.intent.val = 0 Then
dgv.Rows.Add("Main", Subvar.name)
End If
Next
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
End Class
看看逻辑,让我想知道为什么它甚至在这样的班级中。你的 dgv 不应该像那样公开,我认为没有理由共享这些。但是,我是在对您的程序的了解非常有限的情况下这么说的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句