You have a lot of different options. Just to name of few:
void SendNotification()
public delegate void NotifDelegate();
...
var sendNotifClass = new SendNotificationClass();
NotifDelegate sendNotif1 = new NotifDelegate(sendNotifClass.SendNotification);
NotifDelegate sendNotif2 = sendNotifClass.SendNotification;
Action sendNotif3 = delegate { sendNotifClass.SendNotification(); };
Action sendNotif4 = () => sendNotifClass.SendNotification();
Action sendNotif5 = sendNotifClass.SendNotification;
Usage
sendNotif1.Invoke(); //Either
sendNotif1(); //Or
...
sendNotif5.Invoke(); //Either
sendNotif5(); //Or
bool SendNotification(string email)
public delegate bool NotifWithParamDelegate(string param1);
...
NotifWithParamDelegate notifWithParam1 = new NotifWithParamDelegate(sendNotifClass.SendNotification);
NotifWithParamDelegate notifWithParam2 = sendNotifClass.SendNotification;
Func<string, bool> notifWithParam3 = delegate (string email) { return sendNotifClass.SendNotification(email); };
Func<string, bool> notifWithParam4 = email => sendNotifClass.SendNotification(email);
Func<string, bool> notifWithParam5 = sendNotifClass.SendNotification;
Usage
bool isSuccess = notifWithParam1.Invoke("a@b.c"); //Either
bool isSuccess = notifWithParam1("a@b.c"); //Or
...
bool isSuccess = notifWithParam5.Invoke("a@b.c"); //Either
bool isSuccess = notifWithParam5("a@b.c"); //Or