vb.net reflexão versus ligação tardia?
-
19-09-2019 - |
Pergunta
O que deve ser mais adequada ou o que é recomendado para uso em VB.NET a partir de qualquer vs. reflexão ligação tardia:
'Type can be various objects that have a common property for sure.'
Dim type = sender.GetType()
Dim prop = type.GetProperty("Text", 20)
Dim value = property.GetValue(sender, Nothing)
contra:
Dim value = sender.Text
Solução
Nos bastidores ambos estão fazendo a mesma coisa (relativamente falando). recurso de ligação tardia do VB.NET é feito através de consultas montagem de metadados em tempo de execução que é exatamente o que a reflexão é tudo.
Um dos benefícios para a sua primeira abordagem é que você tem a oportunidade de erros de identificador de uma forma mais finamente granulado.
Outras dicas
Não é sender.Text sempre uma string embora? Assim, o tipo de valor pode ser deduzido em tempo de compilação, tornando este último um exemplo de ligação antecipada?
Se você usar ligação tardia, você pode colocar o método que extrai as propriedades em uma classe parcial com Option Explicit = Off. Dessa forma, você ainda tem a verificação de tipo no resto do seu código.