Class_Initialize Alterações para usuários do Visual Basic 6.0
Um construtor é um método que é executado quando um objeto é criado.Constructors são novos no Visual Basic. Eles combinam o comportamento do New demonstrativo e o Class_Initialize método do Visual Basic 6.0, ainda oferecem maior flexibilidade e controle para criar instâncias de classe. Para obter mais informações sobre criação de objetos, consulte Criando e Usando Objetos.
Class_Initialize
Visual Basic 6,0
Visual Basic 6.0 fornece suporte para o conceito de construtor através de Class_Initialize método. Esse método é privado e não permite parâmetros.Este método é chamado automaticamente quando uma nova instância da classe é criada.Uma telefonar para o New chamadas de palavra-chave a Class_Initialize método, se ele existir.
Suponha que você queira especificar o crescimento anual de uma árvore com um padrão de cinco anos.O código da classe teria algo assim:
' Visual Basic 6.0
Private mvarYearlyGrowth As Integer
Public Property Get YearlyGrowth() As Integer
YearlyGrowth = mvarYearlyGrowth
End Property
Public Property Let YearlyGrowth(ByVal newValue As Integer)
mvarYearlyGrowth = newValue
End Property
Private Sub Class_Initialize()
mvarHeight = 5
End Sub
O código para criar uma árvore e definr o atributo teria esta aparência:
Dim growingTree As New Tree
growingTree.YearlyGrowth = 10
Visual Basic 2008
Visual Basic 2008 aceita construtores através da New palavra-chave. Nesse caso, o código adicional para conjunto o YearlyGrowth propriedade não é necessária. Uma telefonar para o New palavra-chave chama um do sobrecarregado New métodos da classe. Se a classe contém nenhum New método, então um sem parâmetros é criado pelo compilador.
Option Strict On
Public Class Tree
Private yearlyGrowthValue As Integer = 5
Public Property YearlyGrowth() As Integer
Get
Return yearlyGrowthValue
End Get
Set(ByVal Value As Integer)
yearlyGrowthValue = Value
End Set
End Property
Public Sub New(ByVal newYearlyGrowth As Integer)
Me.YearlyGrowth = newYearlyGrowth
End Sub
End Class
O código para criar uma árvore e definr o atributo teria esta aparência:
Dim growingTree As New Tree(10)
Neste exemplo, não é possível criar um Tree sem especificar o crescimento anual. Para permitir que, você poderia adicionar outro New método à classe que não tem parâmetros. Isso é chamado de sobrecarga o construtor.
Keyword NEW
Visual Basic 6,0
No Visual Basic 6.0, essa linha de código não é recomendado geralmente:
Dim growingTree As New Tree
Isso ocorre porque sempre que o growingTree variável for acessada, o compilador verifica se o valor é Nothing. Nesse caso, uma nova instância é criada e atribuída a growingTree. Isso é não somente ineficiente, mas leva a erros de programação.
Visual Basic 2008
In Visual Basic 2008, a instância não está marcada e nenhuma nova instância é criada. A única maneira de criar uma nova instância é executar uma linha de código com o New ou As New palavras-chave. Na verdade, a linha de código acima é a maneira recomendada de criação uma nova instância.
Sugestões de atualização
O Assistente de atualização atualiza o Class_Initialize método para isso:
'UPGRADE_NOTE: Class_Initialize was upgraded to Class_Initialize_Renamed. Click for more: ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="vbup1061"'
Private mvarHeight As Short
Private Sub Class_Initialize_Renamed()
mvarHeight = 0
End Sub
Public Sub New()
MyBase.New()
Class_Initialize_Renamed()
End Sub
Talvez seja possível eliminar a telefonar para Class_Initialize_Renamed e mova o código diretamente para o construtor. Isso pode tornar o seu código mais legível como eliminar uma chamada desnecessária para um procedimento.Se cada telefonar para New é normalmente seguida configuração um determinado agrupar de propriedades, considere adicionar um construtor que defina estas propriedades. O código do Visual Basic 6.0 pode ser substituído por este código em Visual Basic 2008:
Public Sub New(ByVal newYearlyGrowth As Integer)
Me.YearlyGrowth = newYearlyGrowth
End Sub
Consulte também
Tarefas
Como: Use a palavra-chave Novo