У меня есть функция, которая принимает два параметра базового класса. В этой функции я хочу протестировать типы этих параметров в ряде производных классов, а затем вызвать полиморфную функцию. Смотрите ниже, чтобы увидеть мою первую попытку, которая не скомпилируется.
public static double Intersect(baseClass s0, baseClass s1)
{
if (s1 is derivedClassB) return (s0 as derivedClassA).PolyMethod((derivedClassB)s1);
else if (s1 is derivedClassC) return (s0 as derivedClassA).PolyMethod((derivedClassC)s1);
else return 0.0;
}
Я думал, что смогу использовать что-то вроде
Type dType = s0.GetType();
(s0 as dType).PolyMethod(derivedClassB) s1);
но это тоже не работает.