La aceptación de un conjunto limitado de subtipos en un argumento de un método
Pregunta
Esto es con C # y .NET 3.5
Vamos a decir que tengo el siguiente método:
myMethod(myBaseClass mbc)
En mi proyecto, todas las siguientes clases heredan de MyBaseClass.
ot1:myBaseClass
ot2:myBaseClass
ot3:myBaseClass
ot4:myBaseClass
¿Hay trucos que me deja utilizar myMethod con OT1 y OT2 OT3 pero NO y OT4, o hacer básicamente que tengo a la sobrecarga para cada tipo Quiero permitir?
Solución
Una interfaz. Cambiar su método de firma a
myMethod(ICastableAsMyBaseClass mbc)
A continuación, tienen OT1 y OT3 aplicar ICastableAsMyBaseClass
.
Otros consejos
Usted puede comprobar la clase de MBC en tiempo de ejecución, pero obviamente eso no le impediría una llamada al método con el momento equivocado en tiempo de compilación.
Si desea recopilar en tiempo verificación de tipos que necesita para sobrecargar el método para cada tipo que desea permitir.