Как Джон Скит уже ответил , нет, вы не можете.
, если ваша проблема заключается в написании действительно общего кода и если вы не контролируете интерфейсы (как в решение, предложенное Baboon ), вы все равно можете сделать это двумя способами в C #:
1 - Reflection
... используя отражение, чтобы запросить нужный методдля вызова:
object x = new First();
Type t = x.GetType();
MethodInfo mi = t.GetMethod("DoSomething");
mi.Invoke(x, new object[]{}); // will call x.DoSomething
2 - динамический (C # 4)
в C # 4 с использованием ключевого слова dynamic
для разрешения вызова во время выполнения вместо времени компиляции:
object x = new First();
dynamic d = x ; // every call through d will be resolved at runtime
d.DoSomething() ; // compiles (but will throw if there is no
// "DoSomething" method