COMPARAR OBJETOS

 Tópico anterior Próximo tópico Novo tópico

COMPARAR OBJETOS

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#482424 - 21/06/2018 13:28:26

DAMASCENO.CESAR
ADAMANTINA
Cadast. em:Fevereiro/2009


Boa tarde, gostaria de saber se possvel, e se for, comparar dois objetos com valores diferentes nas propriedades, segue abaixo o que pretendo fazer
partial public Class Alunos
    Public Property ID as Integer
    Public Property Nome as String
    Public Property RA as Integer
end Class

sub ComparaClasses()
   dim Aluno01 as new Alunos
   dim Aluno02 as new Alunos

  Aluno01.ID =2
  Aluno01.Nome = []PAULO[]
  Aluno01.RA = 123456

  Aluno02.ID =10
  Aluno02.Nome = []FRANCISCO[]
  Aluno01.RA = 854789

  []AQUI QUE NO SEI COMO FAZER
  IF Aluno01 <> Aluno02 Then []Eu sei que esse comparador no funciona, s para dar ideia do que quero fazer
       []minha acao
  End If

end Sub



Se algum puder me ajudar ....


O conhecimento como o dinheiro: quanto mais temos, mais queremos ter (Josh Billings)  


#482425 - 21/06/2018 13:30:30

FERDEAD
LIMEIRA
Cadast. em:Outubro/2004


no d certo vc comparar pelos ids j que vc tem ele, e so nicos?

  IF Aluno01.id <> Aluno02.id Then
       []minha acao
  End If  




#482426 - 21/06/2018 13:35:28

DAMASCENO.CESAR
ADAMANTINA
Cadast. em:Fevereiro/2009


FERDEAD, na verdade minha inteno comparar se houve alteraes nos dados, se houver alterao ao fechar o form, aviso que houve alteraes e pergunto se quer salvar
o ID vai continuar o mesmo, no queria fazer comparao campo a campo, pois so mais de 50 campos


O conhecimento como o dinheiro: quanto mais temos, mais queremos ter (Josh Billings)  


#482429 - 21/06/2018 14:10:06

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Nesse caso, sugiro usar a implementao de INotifyPropertyChanged

_______________________________________________________________________
Virei Orculo!
The end is nigh, be ready for the nukes!


#482430 - 21/06/2018 14:23:29

DAMASCENO.CESAR
ADAMANTINA
Cadast. em:Fevereiro/2009


Obrigado, KERP, vou testar aqui, depois retorno

O conhecimento como o dinheiro: quanto mais temos, mais queremos ter (Josh Billings)  


#482432 - 21/06/2018 14:37:05

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe

Última edição em 21/06/2018 14:38:13 por KERPLUNK

O approach disso colocar uma propriedade somente leitura(propriedade full, com varivel interna da classe), algo como []IsModified[], ento qualquer propriedade que mofidicar, voc seta a varivel como true.
Assim, voc nem sequer precisa comparar com nada, voc j vai saber se teve ou no modificao mesmo em um objeto []solto[]


_______________________________________________________________________
Virei Orculo!
The end is nigh, be ready for the nukes!


#482598 - 28/06/2018 22:18:20

PLUGSOFTSM
SANTA MARIA
Cadast. em:Julho/2015


Olha s... existem vrias solues aqui que vc poderia usar pra resolver teu problema facilmente:
Vou te citar uma..... Caso no ache ela prtica posso te sugerir outras

Na hora de mostrar os valores dos campos do registro, imaginemos que vc use textbox para exibi-loa na tela... Voc poderia fazer assim:
1 - Liste o valor de cada campo nas propriedades text e Tag do controle
2 - Se vc fizer alteraes, a propriedade Text mudar, enquanto a propriedade tag se manter com o valor original

Para testar use um cdigo simples tipo
Dim Mudou as boolean = false

For Each C as Control in Me.controls
  if c.text <> c.tag Then
    Mudou = true
   Exit for
Next
If Mudou = True then
  []Aqui teu cdigo para o caso de ter feito alteraes
end If

Caso necessite testar a classe dos controles , use o cdigo assim
For Each C as Control in Me.controls
  If TypeOf C Is TextBox OrElse TypeOf C Is MaskedTextBox Then
    if c.text <> c.tag Then
      Mudou = true
     Exit for
   endif
Next



 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por DAMASCENO.CESAR em 09/10/2018 10:51:16