C# Сравнение двух делегатов

Есть два делегата с одинаковыми прототипами. Есть некий метод, куда в качестве аргументов передаются два такие делегата. Нужно проверить, являются ли эти делегаты одной и той же функцией.

namespace ConsoleApp3
{
    internal class Program
    {
        public delegate void MyDelegate(long number);
        public delegate void MyDelegate2(long number);
        
        static void Main(string[] args)
        {
            void func(long n)
            {
                Console.WriteLine("func");
            };

            SomeMethod(func, func);
        }

        private static void SomeMethod(MyDelegate a, MyDelegate2 b)
        {
            Console.WriteLine(a.Equals(b)); //false
        }
    }
}

Как сделать такое сравнение?

А это для чего и зачем тут два делегата?)

Если один, то работало бы

	public delegate void MyDelegate(long number);
	
	public static void Main(string[] args)
	{
		void func(long n)
		{
			Console.WriteLine("func");
		};
		void func2(long n)
		{
			Console.WriteLine("func");
		};
		SomeMethod(func, func); // true
		SomeMethod(func, func2); // false
	}

	private static void SomeMethod(MyDelegate a, MyDelegate b)
	{
		Console.WriteLine(a == b);
	}

Да, кстати, можно же было и один сделать :thinking: Не помню, почему я их два сделал. Наверное, хотел потом запилить разные прототипы, но так и не запилил. Давно это было.
Однако, нашёл как можно проверить: Console.WriteLine(a.Method == b.Method);. Так с разными работает.