views:

27

answers:

2

Hello, I have this interface

public interface TestInterface
{
   [returntype] MethodHere();
}

public class test1 : TestInterface
{
   string MethodHere(){
      return "Bla";
   }
}

public class test2 : TestInterface
{
   int MethodHere(){
     return 2;
   }
}

Is there any way to make [returntype] dynamic?

+4  A: 

Not really dynamic but you could make it generic:

public interface TestInterface<T>
{
    T MethodHere();
}

public class Test1 : TestInterface<string>
... // body as before
public class Test2 : TestInterface<int>
... // body as before

If that's not what you're after, please give more details about how you'd like to be able to use the interface.

Jon Skeet
Thanks this is exactly what I was looking for!
Timo Willemsen
+5  A: 

Either declare the return type as Object, or use a generic interface:

public interface TestInterface<T> {
    T MethodHere();
}

public class test3 : TestInterface<int> {
   int MethodHere() {
      return 2;
   }
}
x0n