C# Как сообщить метод к делегату?

Какие существуют варианты сообщения метода с делегатом, кроме как писать
MyDelegate delegate = new MyDelegate(Method)

насколько я понял если нужно сообщить уже существующий метод (объявленный а программном коде), то есть только два способа:
1 - тот что указали Вы
MyDelegate delegate = new MyDelegate(Method);
2 - использовать технику предположения делегата
MyDelegate delegate = Method;

Если же нужно сообщить анонимный метод, то есть три варианта:

  1. myDelegate = delegate(int x) { return x * 2; };
  2. использовать лямбда-оператор
    myDelegate = (x) => { return x * 2 }; - можно записать несколько команд в тело метода
  3. использовать лямбда-выражение
    myDelegate = (x) => x * 2 ; - можно записать только одну команду

спасибо