Jump to content
Juca

Problema com GET e SET.

Recommended Posts

Juca

Bom dia a todos,

Estou com problema com uso do GET e SET, criei um sistema para teste, só que não consigo ler o conteúdo da variável. Abaixo segue todo o desenvolvimento.

1 – Criei uma classe com o nome cVariavelPublica.

Public Class cVariavelPublica
   Public vId As Integer
   Public vNomeCompleto As String
   Public vPassword As String

   Public Property varId()
       Get
           Return vId
       End Get
       Set(ByVal Value)
           vId = Value
       End Set
   End Property

   Public Property varNomeCompleto()
       Get
           Return vNomeCompleto
       End Get
       Set(ByVal Value)
           vNomeCompleto = Value
       End Set
   End Property

   Public Property varPassword()
       Get
           Return vPassword
       End Get
       Set(ByVal Value)
           vPassword = Value
       End Set
   End Property

End Class

2 – Criei um formulário com nome Form1 que faz a entrada de dados e chama o Form2.

Public Class Form1

   Dim cValPub As New cVariavelPublica

   Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
       cValPub.varId = txtId.Text
       cValPub.varNomeCompleto = txtNomeCompleto.Text
       cValPub.varPassword = txtSenha.Text

       Form2.Show()

   End Sub
End Class

3 – E um formulário com nome Form2 que ira receber os valores.

Public Class Form2

   Dim cVP As New cVariavelPublica

   Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
       txtIdF2.Text = cVP.vId
       txtNoneF2.Text = cVP.vNomeCompleto
       txtSenhaF2.Text = cVP.vPassword
   End Sub
End Class

Share this post


Link to post
Share on other sites
Muryllo

Boas,

Explica-te melhor amigo para que possamos saber o que você quer realmente fazer.

Bom, você disse que criou uma "classe". Certo, isso seria uma DLL ? Eu até saberia onde está o problema se fosse uma dll, por exemplo quando você carrega a dll no programa usando um Dim X As New MinhaDLL.CLASSE e blá blá blá você só faz a referência as variáveis da DLL que estão carregadas naquele formulário. Então se por exemplo eu usasse a DLL no Form1 e modificasse o valor de X lá e depois no Form2 eu fosse tentar resgatar essa variável, você vai ver que não dá pois a classe está carregada no form1 com aqueles valores, no form2 ela será carregada também mas do 0 entendeu ?

Não ficou explícito se é uma classe externa ao programa ou uma dentro do programa.

Você também pode criar variáveis Públicas no Form1 e usá-las no Form2 o que eu acharia bem melhor ...

Depende de como você programa amigo.

Abraços.

Edited by Muryllo

Share this post


Link to post
Share on other sites
He B TeMy

É como o poster acima disse, você está a instanciar a classe separadamente nos dois forms, isto faz com que uma instância não tenha nada a ver com a outra.

Na minha opinião já que a classe é publica, simplesmente remova o 'New' e use a classe em si para aceder ás variáveis, até dependendo do seu uso as fazer como 'Shared', se no seu caso quiser partilha-las numa 'classe' á parte, até poderia usar um 'módulo', que é basicamente uma classe mas 'shared' por defeito.

Dependendo também do seu acesso á variável privada, que neste caso parece não dar problema com o que eu vou sugerir, aconselho-o a utilizar 'auto-properties', como explica aqui https://msdn.microsoft.com/en-us/library/dd293589.aspx

Edited by He B Te My

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.