C# Hidden Property Bleeding

Code

public interface First
{
    int FieldOne { get; set;}
}
 
public interface Second : First
{
    new int FieldOne { get; }
}

Commentary

C# treats interfaces differently than it treats classes. If these were classes then Second properly hides first, but the interfaces "bleed". It appears the concept of hiding does not cleanly apply to interfaces. It works cleverly and some might even say how they would expect (I can see that sort of) but from a purity standpoint, hiding a property declaration should really mean hiding it for that interface.

Snippet Usage

Unless otherwise stated, the content of this page is licensed under GNU Free Documentation License.