Pergunta

Este é com C # e .NET 3.5

Vamos dizer que eu tenho o seguinte método:

myMethod(myBaseClass mbc)

No meu projeto, todas as seguintes classes herdam myBaseClass.

ot1:myBaseClass
ot2:myBaseClass
ot3:myBaseClass
ot4:myBaseClass

Existem truques que vai me deixar usar myMethod com OT1 e OT3 mas não OT2 e OT4, ou eu basicamente tem que sobrecarga para cada tipo eu quero permitir que?

Foi útil?

Solução

Uma interface. Mude sua assinatura do método para

myMethod(ICastableAsMyBaseClass mbc)

Então, OT1 e OT3 implementar ICastableAsMyBaseClass.

Outras dicas

Você pode verificar a classe de mbc em tempo de execução, mas obviamente que não iria impedi-lo de chamar o método com o tempo errado em tempo de compilação.

Se você quiser tempo de compilação typechecking você precisa sobrecarregar o método para cada tipo que você deseja permitir.

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