Search Results

Search found 1 results on 1 pages for 'etarassov'.

Page 1/1 | 1 

  • C#: why Base class is allowed to implement an interface contract without inheriting from it?

    - by etarassov
    I've stumbled upon this "feature" of C# - the base class that implements interface methods does not have to derive from it. Example: public interface IContract { void Func(); } // Note that Base does **not** derive from IContract public abstract class Base { public void Func() { Console.WriteLine("Base.Func"); } } // Note that Derived does *not* provide implementation for IContract public class Derived : Base, IContract { } What happens is that Derived magically picks-up a public method Base.Func and decides that it will implement IContract.Func. What is the reason behind this magic? IMHO: this "quasi-implementation" feature is very-unintuitive and make code-inspection much harder. What do you think?

    Read the article

1