Metody delegowania a metody ogólne

Chcę poznać różnicę między używaniem metod delegowania a używaniem metod ogólnych [bez delegatów].

Na przykład :

Z delegatem:

delegate void DelMethod(string str);

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

Stosowanie :

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

I bez delegata:

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

Stosowanie :

Method(string)

Jakie są różnice między tymi dwoma?

Metoda bez delegowania jest mniejsza i łatwiejsza. Ale często znajduję koderów używających metod delegowanych.

Jaka jest tego przyczyna?

questionAnswers(4)

yourAnswerToTheQuestion