Hello everyone,
I am migrating from C++ to C#. The following compile error makes me confused. Suppose in interface there is a method called Abc which returns object, and in the implementation class, there is also a method called Abc, but the return type is List<int>, I think List<int> is already a type (derived type) of object, so no need to explicitly implement Interface.Abc again, but here is a compile error.
[Code]D:\Visual Studio 2008\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs(14,11): error CS0738: 'MyList.Foo' does not implement interface member 'MyList.IFoo.Abc()'. 'MyList.Foo.Abc()' cannot implement 'MyList.IFoo.Abc()' because it does not have the matching return type of 'object'.[/Code]
Could anyone show me what is the rule I break here please?
[Code]public class MyList{
interface IFoo { object Abc(); }
class Foo : IFoo { public Foo() {
} public List<int> Abc() { return new List<int>; }
}
static void Main() { Foo f = new Foo(); return; }}[/Code]
thanks in advance,George