<?xml version="1.0"?>
<ErrorDocumentation xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <ErrorName>CS0111</ErrorName>
  <Examples>
    <string>// CS0111: A member `Test.EmptyClass.~EmptyClass()' is already defined. Rename this member or use different parameter types
// Line: 12

namespace Test
{
	public class EmptyClass
	{
		~EmptyClass ()
		{
		}

		~EmptyClass ()
		{
		}
	}
}
</string>
    <string>// CS0111: A member `Blah.I.M()' is already defined. Rename this member or use different parameter types
// Line : 12

public interface I
{
    void M ();
}

public class Blah: I
{
        void I.M () {}
        void I.M () {}
}
</string>
    <string>// CS0111: A member `S3.S3(string)' is already defined. Rename this member or use different parameter types
// Line: 6
// Compiler options: -langversion:experimental

struct S3 (string s)
{
	public S3 (string s)
		: this (1)
	{
	}

	public S3 (int i)
		: this ("")
	{
	}
}
</string>
    <string>// CS0111: A member `T.T()' is already defined. Rename this member or use different parameter types
// Line: 9

partial class T {
	T () {}
}

partial class T {
	T () {}
}
</string>
    <string>// CS0111: A member `C.this[params int[]]' is already defined. Rename this member or use different parameter types
// Line: 6

class C
{
    bool this [int[] i] { get { return true; } }
    bool this [params int[] i] { get { return false; } }
}
</string>
    <string>// CS0111: A member `C.Foo()' is already defined. Rename this member or use different parameter types
// Line: 11


public partial class C
{
	void Foo ()
	{
	}
	
	partial void Foo ();
	
	partial void Foo ()
	{
	}
}
</string>
    <string>// CS0111: A member `N.MyClass.N.IMyInterface.MyEvent' is already defined. Rename this member or use different parameter types
// Line: 18

namespace N
{
	interface IMyInterface
	{
		bool MyEvent { set; }
	}

	public class MyClass : IMyInterface
	{
		bool IMyInterface.MyEvent
		{
			set { }
		}

		bool N.IMyInterface.MyEvent
		{
			set { }
		}
	}
}
</string>
    <string>// CS0111: A member `C.Foo()' is already defined. Rename this member or use different parameter types
// Line: 12


public partial class C
{
	partial void Foo ();
}

public partial class C
{
	void Foo ()
	{
	}
}
</string>
    <string>// CS0111: A member `Dictionary&lt;K,V&gt;.Add(V)' is already defined. Rename this member or use different parameter types
// Line: 14

using System;
using System.Collections.Generic;

public class Dictionary&lt;K,V&gt;
{
	public void Add (V key)
	{
		throw new InvalidOperationException ();
	}

	public void Add (V value)
	{
		throw new InvalidOperationException ();
	}
}
</string>
    <string>// CS0111: A member `Blah.I.M&lt;U&gt;(int)' is already defined. Rename this member or use different parameter types
// Line : 12

public interface I
{
    void M&lt;T&gt; (int i);
}

public class Blah: I
{
        void I.M&lt;T&gt; (int i) {}
        void I.M&lt;U&gt; (int i) {}
}
</string>
    <string>// CS0111: A member `C.Foo&lt;U&gt;(U)' is already defined. Rename this member or use different parameter types
// Line : 12

public class C
{
	void Foo&lt;T&gt; (T i)
	{
	}
	
	void Foo&lt;U&gt; (U i)
	{
	}
}
</string>
    <string>// CS0111: A member `MyClass.IMyInterface&lt;System.String&gt;.Prop' is already defined. Rename this member or use different parameter types
// Line: 18

using System;

interface IMyInterface&lt;T&gt;
{
	bool Prop { set; }
}

public class MyClass: IMyInterface&lt;string&gt;
{
	bool IMyInterface&lt;string&gt;.Prop
	{
		set {}
	}

	bool IMyInterface&lt;System.String&gt;.Prop
	{
		set {}
	}
}
</string>
    <string>// CS0111: A member `C.I&lt;int&gt;.Prop' is already defined. Rename this member or use different parameter types
// Line: 12

interface I&lt;T&gt;
{
	T Prop { get; set; }
}

class C : I&lt;int&gt;
{
	int I&lt;int&gt;.Prop { get; set; }
	int I&lt;int&gt;.Prop { get; set; }
}
</string>
    <string>// CS0111: A member `Blah.I.M&lt;X&gt;()' is already defined. Rename this member or use different parameter types
// Line : 12

public interface I
{
    void M&lt;X&gt; ();
}

public class Blah: I
{
        void I.M&lt;X&gt; () {}
        void I.M&lt;X&gt; () {}
}

</string>
    <string>// CS0111: A member `C.Method(object)' is already defined. Rename this member or use different parameter types
// Line: 10

class C
{
	void Method (dynamic d)
	{
	}

	void Method (object d)
	{
	}
}
</string>
    <string>// CS0111: A member `Class.op_Implicit(byte)' is already defined. Rename this member or use different parameter types
// Line: 9

public class Class {
        static public implicit operator Class(byte value) {
               return new Class();
        }
    
        public static void op_Implicit (byte value) {}
}
</string>
    <string>// CS0111: A member `C.Foo&lt;U&gt;(U)' is already defined. Rename this member or use different parameter types
// Line : 12

public class C
{
	void Foo (int i)
	{
	}
	
	void Foo&lt;T&gt; (T i)
	{
	}
	
	void Foo&lt;U&gt; (U i)
	{
	}
}
</string>
    <string>// CS0111: A member `ISample.Blah()' is already defined. Rename this member or use different parameter types
// Line: 6

public interface ISample {
        int Blah ();
        int Blah ();
}
</string>
    <string>// CS0111: A member `T.T()' is already defined. Rename this member or use different parameter types
// Line : 6

class T {
	T () {}
	T () {}

	public static void Main ()
	{
	}
}
</string>
    <string>// CS0111: A member `T.T()' is already defined. Rename this member or use different parameter types
// Line : 6

class T {
	static T () {}
	static T () {}

	public static void Main ()
	{
	}
}
</string>
    <string>// CS0111: A member `C.Foo&lt;U&gt;(G&lt;U&gt;)' is already defined. Rename this member or use different parameter types
// Line : 14

class G&lt;T&gt;
{
}

public class C
{
	void Foo&lt;T&gt; (G&lt;T&gt; g)
	{
	}
	
	void Foo&lt;U&gt; (G&lt;U&gt; u)
	{
	}
}
</string>
    <string>// CS0111: A member `C.this[int]' is already defined. Rename this member or use different parameter types
// Line: 6

class C
{
    bool this [int i] { get { return false; } }
    bool this [int i] { get { return true; } }
}
</string>
    <string>// CS0111: A member `Blah.Foo(int, int)' is already defined. Rename this member or use different parameter types
// Line : 10

public class Blah {

	static public void Foo (int i, int j)
	{
	}

	static public void Foo (int i, int j)
	{
	}

	public static void Main ()
	{
		int i = 1;
		int j = 2;

		Foo (i, j);
	}
}
</string>
  </Examples>
</ErrorDocumentation>