struct IOperationProvider<T>
{
T Sum(T lhs, T rhs)
}
void SomeProcessing<T, TOperation>(...)
where TOperation : IOperationProvider<T>
{
T var1 = ...;
T var2 = ...;
T sum = default(TOperation).Sum(var1, var2); // This is zero cost!
}
я правильно понимаю, что вместо struct IOperationProvider<T>, на самом деле, должен быть объявлен интерфейс, и совсем избавиться от виртуальных вызовов не получится?
Можно немного поподробнее про текущие костыли
я правильно понимаю, что вместо
struct IOperationProvider<T>,
на самом деле, должен быть объявлен интерфейс, и совсем избавиться от виртуальных вызовов не получится?