When assigning named methods to delegates, they will refer to the same underlying object if:

public class Greeter
{
   public void WriteInstance()
   {
       Console.WriteLine("Instance");
   }

   public static void WriteStatic()
   {
       Console.WriteLine("Static");
   }
}

// ...

Greeter greeter1 = new Greeter();
Greeter greeter2 = new Greeter();

Action instance1 = greeter1.WriteInstance;
Action instance2 = greeter2.WriteInstance;
Action instance1Again = greeter1.WriteInstance;

Console.WriteLine(instance1.Equals(instance2)); // False
Console.WriteLine(instance1.Equals(instance1Again)); // True

Action @static = Greeter.WriteStatic;
Action staticAgain = Greeter.WriteStatic;

Console.WriteLine(@static.Equals(staticAgain)); // True