У меня есть интерфейс
interface IInterface<E>{
E Foo();
}
Затем я создаю такой класс
class Bar : IInterface<String>, IInterface<Int32> {
}
На самом деле это работает довольно хорошо, за исключением того, что мне нужно определить одну из двух функций с явным интерфейсом, например:
class Bar : IInterface<String>, IInterface<Int32> {
String Foo();
Int32 IInterface<Int32>.Foo();
}
Недостатком является то, что мне приходится выполнять приведение типов каждый раз, когда я хочу получить доступ к Foo (), который имеет явный интерфейс.
Каковы наилучшие методы борьбы с этим?
Я делаю приложение, очень зависящее от производительности, поэтому я действительно не хочу делать миллион отливок в секунду. Это то, что JIT выяснит, или я должен хранить приведенную версию экземпляра в себе?
Я не пробовал этот конкретный код, но он выглядит очень близко к тому, что я делаю.