Для того, чтобы это работало, универсальному методу (или типу) потребуется ограничение, позволяющее ему понимать все перечисленные вами отдельные свойства (Rate
, Date
, MinVal
, MaxValue
, Start
и End
).
Если все типы, о которых вы беспокоитесь, происходят из одного и того же базового класса или интерфейса, вам не нужны универсальные шаблоны - просто создайте метод, который принимает два аргумента этого базового типа.
Если, тем не менее, они, опять же, дженерики, скорее всего, здесь не подойдут, тем не менее, есть другой вариант. Вы можете использовать dynamic
, чтобы эффективно использовать эти свойства, используя привязку во время выполнения. Просто поймите, что если вы передадите аргумент типа без этих свойств, он потерпит неудачу во время выполнения .