<?xml version="1.0"?>
<ErrorDocumentation xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <ErrorName>CS0109</ErrorName>
  <Examples>
    <string>// CS0109: The member `Outer.Inner' does not hide an inherited member. The new keyword is not required
// Line: 7
// Compiler options: -warnaserror -warn:4

class Outer
{
    public new class Inner
    {
    }
}</string>
    <string>// CS0109: The member `Derived.Test()' does not hide an inherited member. The new keyword is not required
// Line: 10
// Compiler options: -warnaserror -warn:4

class Base {
	void Test (bool arg) {}
}

class Derived : Base {
	new void Test () {}
}</string>
    <string>// CS0109: The member `BaseClass.Val' does not hide an inherited member. The new keyword is not required
// Line: 6
// Compiler options: -warnaserror -warn:4

class BaseClass {
        public new const bool Val = false;
}</string>
    <string>// CS0109: The member `Wrapper.DerivedClass.AnInt' does not hide an inherited member. The new keyword is not required
// Line: 18
// Compiler options: -warnaserror

public abstract class BaseClass
{
	private static readonly int AnInt = 1;

	public static void Main ()
	{
	}
}

public static class Wrapper
{
	public class DerivedClass : BaseClass
	{
		private new static readonly int AnInt = 2;
	}
}
</string>
    <string>// CS0109: The member `Derived.this[string]' does not hide an inherited member. The new keyword is not required
// Line: 10
// Compiler options: -warnaserror -warn:4

class Base {
	public bool this [int arg] { set {} }
}

class Derived : Base {
	public new bool this [string arg] { set {} }
}
</string>
    <string>// CS0109: The member `Derived&lt;U&gt;.Action' does not hide an inherited member. The new keyword is not required
// Line: 12
// Compiler options: -warnaserror -warn:4

public abstract class Base
{
	public delegate void Action&lt;U&gt;(U val);
}

public class Derived&lt;U&gt; : Base
{
	new internal Action&lt;U&gt; Action;
}
</string>
    <string>// CS0109: The member `DerivedClass.get_Value()' does not hide an inherited member. The new keyword is not required
// Line: 14
// Compiler options: -warnaserror -warn:4

class BaseClass {
        protected virtual int Value { 
                get {
                        return 0;
                }
                set { }
        }
}

abstract class DerivedClass: BaseClass {
        protected new int get_Value () {
                return 1;
        }
}


class ErrorClass: DerivedClass {
        protected override int Value { 
                get {
                        return 0;
                }
                set { }
        }

		static void Main () {}
}

</string>
    <string>// CS0109: The member `Derived.Action&lt;T,U&gt;' does not hide an inherited member. The new keyword is not required
// Line: 12
// Compiler options: -warnaserror -warn:4

public abstract class Base
{
	public delegate void Action&lt;U&gt; (U val);
}

public class Derived : Base
{
	public new delegate void Action&lt;T, U&gt; (U val);
}
</string>
    <string>// CS0109: The member `Test.this[string]' does not hide an inherited member. The new keyword is not required
// Line: 9
// Compiler options: -warnaserror -warn:4

using System.Collections;

public class Test: ArrayList
{
    public new string this[string index]
    {
	set
	{
	}
    }
}
</string>
    <string>// CS0109: The member `BaseClass.Location' does not hide an inherited member. The new keyword is not required
// Line: 6
// Compiler options: -warnaserror -warn:4

class BaseClass {
        public new int Location { set { } }
}</string>
    <string>// CS0109: The member `BaseClass.Location' does not hide an inherited member. The new keyword is not required
// Line: 6
// Compiler options: -warnaserror -warn:4

class BaseClass {
        public new int Location;
}</string>
  </Examples>
</ErrorDocumentation>