Методы делегатов против общих методов

Я хочу знать разницу между использованием методов делегатов и общих методов [без делегатов].

Например

С делегатом:

delegate void DelMethod(string str);

static void Method(string str)
{
    Debug.WriteLine(str);
}

Использование

DelMethod dm = new DelMethod(Method);
dm(string);

И без делегата:

static void Method(string str)
{
    Debug.WriteLine(str);
}

Использование

Method(string)

Каковы различия этих двух ??

Метод без делегата меньше и проще. Но я часто нахожу кодеров, использующих делегированные методы.

В чем причина этого ??

Ответы на вопрос(4)

Ваш ответ на вопрос