Delegieren von Methoden gegen allgemeine Methoden

Ich möchte den Unterschied zwischen der Verwendung von Delegate-Methoden und der Verwendung allgemeiner Methoden [ohne Delegaten] kennen.

Zum Beispiel :

Mit Delegierten:

delegate void DelMethod(string str);

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

Verwendungszweck :

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

Und ohne Stellvertreter:

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

Verwendungszweck :

Method(string)

Was sind die Unterschiede dieser beiden?

Die Methode ohne Delegierten ist kleiner und einfacher. Aber ich finde Codierer, die häufig delegierte Methoden verwenden.

Was ist der Grund dafür?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage