Domanda

Questo è con C # e .NET 3.5

Diciamo che ho il seguente metodo:

myMethod(myBaseClass mbc)

Nel mio progetto, tutte le seguenti classi ereditano da myBaseClass.

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

Ci sono trucchi che mi ha lasciato usare myMethod con ot1 e OT3 ma NON OT2 e OT4, o devo sostanzialmente avere sovraccaricare per ogni tipo voglio permettere?

È stato utile?

Soluzione

Un'interfaccia. Cambia la tua firma metodo per

myMethod(ICastableAsMyBaseClass mbc)

Poi hanno ot1 e OT3 implementare ICastableAsMyBaseClass.

Altri suggerimenti

Si potrebbe verificare la classe di MBC in fase di esecuzione, ma, ovviamente, che non ci si impedisce di chiamare il metodo con il momento sbagliato al momento della compilazione.

Se si desidera a tempo di compilazione typechecking è necessario sovraccaricare il metodo per ogni tipo che si desidera consentire.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top