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
Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top