Скажем, у меня есть 3 класса: A
, B
и C
. Каждый из этих классов имеет метод GetValue()
, который возвращает int
. Я хочу создать этот метод:Как ограничить типы параметров в общих методах
int GetTotalValue<T,R>(T c1, R c2)
{
return c1.GetValue() + c2.GetValue()
}
Очевидно, что это не сработает. Поскольку не все типы параметров имеют метод GetValue()
. Так как ограничить типы параметров T
и R
, поэтому они должны иметь GetValue()
метод (который возвращает int
)
Возможно, вы захотите добавить к своему ответу, что с этим общим ограничением, для метода выборки, используемого в вопросе ОП, общий метод не имеет смысла. Он мог бы просто использовать 'int GetTotalValue (IGetValue c1, IGetValue c2)'. – Alex
@Alex, очень хороший пункт. Я обновил ответ, чтобы это отразить. –