Hiding

A nested type may hide (10.7.1.1) a base member. The new modifier is permitted on nested type declarations so that hiding can be expressed explicitly. [Example: The example using System; class Base { public static void M() { Console.WriteLine("Base.M"); } } class Derived: Base { new public class M { public static void F() { Console.WriteLine("Derived.M.F"); } } } class Test { static void Main() { Derived.M.F(); } } shows a nested class M that hides the method M defined in Base. end example]