tengo una interfazUsando la interfaz genérica varias veces en la misma clase
interface IInterface<E>{
E Foo();
}
continuación, se crea una clase como esta
class Bar : IInterface<String>, IInterface<Int32> {
}
En realidad, esto funciona bastante bien, excepto que necesito para definir una de las dos funciones con la interfaz explícita, como esta:
class Bar : IInterface<String>, IInterface<Int32> {
String Foo();
Int32 IInterface<Int32>.Foo();
}
El inconveniente es que tengo que hacer un yeso cada vez que quiero llegar al Foo() que tiene la interfaz explícita.
¿Cuáles son las mejores prácticas cuando se trata de esto?
Estoy haciendo una aplicación muy dependiente del rendimiento, así que realmente no quiero hacer un millón de lanzamientos por segundo. ¿Esto es algo que resolverá el JIT, o debería almacenar una versión en caste de la instancia en sí misma?
No he probado este código específico, pero se ve muy cerca de lo que estoy haciendo.
fundición tiene un costo casi nulo sobre los tipos de referencia. – leppie
Mi programa contiene un molde cada quinta adición/multiplicación. Mi suposición es que la adición/multiplicación es tan barata que el costo del casting se vuelve considerable. –
No es más costoso que la llamada a la interfaz. – leppie