I just decompiled some 3rd-party interface and scratched my head about the following:
public interface IFoo 
{
    string Name { get; set; }
}
public interface IBar : IFoo
{
    new string Name { get; set; }
}
As you can see I have two interfaces, where IBar extends IFoo by hiding its Name-property. However I can´t see what the new-keyword is doing here. I read an answer from Eric Lippert that relates to members that solely differ on their return-type. However in my case everything is just a string.
Of course we could explicitely implement either of the interfaces. But that would be possible without new anyway. 
 
     
    