<?xml version="1.0"?>
<ErrorDocumentation xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <ErrorName>CS0123</ErrorName>
  <Examples>
    <string>// CS0123: A method or delegate `C.Button1_Click(params object[])' parameters do not match delegate `EventHandler(params int[])' parameters
// Line: 20

using System;

public delegate void EventHandler (params int[] args);

public class C
{
	public void Connect ()
	{
		EventHandler Click = new EventHandler (Button1_Click);
	}

	public void Button1_Click (params object[] i)
	{
	}
}
</string>
    <string>// CS0123: A method or delegate `object.ToString()' parameters do not match delegate `System.Func&lt;string&gt;()' parameters
// Line: 16

using System;

class Test
{
	public static void Main ()
	{
		Func&lt;string&gt; f = default (TypedReference).ToString;
	}
}</string>
    <string>// CS0123: A method or delegate `C.Method(ref dynamic)' parameters do not match delegate `C.D(dynamic)' parameters
// Line: 14

public class C
{
	delegate void D (dynamic d);
	
	static void Method (ref dynamic d)
	{
	}

	public static void Main ()
	{
		D d = Method;
	}
}

</string>
    <string>// CS0123: A method or delegate `MainClass.Delegate()' parameters do not match delegate `TestDelegate(bool)' parameters
// Line: 17

delegate IA TestDelegate(bool b);

interface IA {}

public class MainClass : IA
{
	static MainClass Delegate()
	{
		return null;
	}

	public static void Main()
	{
		TestDelegate delegateInstance = new TestDelegate (Delegate);
	}
}

</string>
    <string>// CS0123: A method or delegate `Program.method(A)' parameters do not match delegate `D(dynamic)' parameters
// Line: 19

delegate object D (dynamic b);

class A
{
}

class Program
{
	static string method (A a)
	{
		return "";
	}

	static void Main ()
	{
		var d = new D (method);
	}
}
</string>
    <string>// CS0123: A method or delegate `Test.Foo(int, bool)' parameters do not match delegate `System.Func&lt;int,bool&gt;(int)' parameters
// Line: 15

using System;

class Test
{
	static bool Foo (int x, bool option = true)
	{
		return true;
	}

	static void Main ()
	{
		Func&lt;int, bool&gt; f = Foo;
	}
}
</string>
    <string>// CS0123: A method or delegate `TestDelegateA(bool)' parameters do not match delegate `TestDelegateB(int)' parameters
// Line: 12

delegate int TestDelegateA (bool b);
delegate int TestDelegateB (int b);

public class MainClass
{
	public static int Delegate(bool b)
	{
		return 0;
	}

	public static void Main() 
	{
		TestDelegateA a = new TestDelegateA (Delegate);
		TestDelegateB b = new TestDelegateB (a);
	}
}

</string>
    <string>// CS0123: A method or delegate `MainClass.Delegate()' parameters do not match delegate `TestDelegate(bool)' parameters
// Line: 12

delegate int TestDelegate(bool b);

public class MainClass {
        public static int Delegate() {
                return 0;
        }

        public static void Main() {
                TestDelegate delegateInstance = new TestDelegate (Delegate);
       }
}

</string>
    <string>// CS0123: A method or delegate `object.ToString()' parameters do not match delegate `System.Func&lt;string&gt;()' parameters
// Line: 16
// Compiler options: -langversion:latest

using System;

public ref struct S
{
}

class Test
{
	public static void Main ()
	{
		var s = new S ();
		Func&lt;string&gt; f = s.ToString;
	}
}</string>
    <string>// CS0123: A method or delegate `X.f1(int, object)' parameters do not match delegate `X.Function(int, int)' parameters
// Line: 13

using System;

class X
{
	public delegate bool Function(int arg1, int arg2);

	static void Main ()
	{
		Delegate [] d = new Delegate [] {
			new Function (f1),
		};
	}

	static bool f1 (int a, object b)
	{
		return false;
	}
}
</string>
    <string>// CS0123: A method or delegate `A&lt;T,U&gt;.M(T)' parameters do not match delegate `A&lt;T,U&gt;.D(U)' parameters
// Line: 10

class A&lt;T, U&gt; where T : U
{
	delegate void D (U u);

	static void M (T t)
	{
		D d = M;
	}
}
</string>
  </Examples>
</ErrorDocumentation>