delegate void SchreibWohinSchema(string parameter);
delegate T ReicheDurchSchema<T>(T parameter);
static SchreibWohinSchema Schreiberling;
static ReicheDurchSchema<string> TextReicher;
static ReicheDurchSchema<int> ZahlenReicher = UniversalReichendeMethode;
public static void Main()
var Text = "Hello World";
TextReicher = (param) => {
Schreiberling = SchreibendeMethode;
Schreiberling.Invoke(Text);
Schreiberling = SchweigendeMethode;
Schreiberling.Invoke(TextReicher.Invoke(Text));
TextReicher = UniversalReichendeMethode;
Schreiberling = SchreibendeMethode;
Schreiberling.Invoke(TextReicher.Invoke(Text));
TextReicher = BöseMethode;
Schreiberling = SchreibendeMethode;
Schreiberling.Invoke(TextReicher.Invoke(Text));
Console.WriteLine(ZahlenReicher.Invoke(Wert));;
ZahlenReicher = BöseMethode;
Console.WriteLine(ZahlenReicher.Invoke(Wert));;
public static void SchreibendeMethode(string param)
Console.WriteLine(string.Format("Schreibende Methode '{0}'!!!", param));
public static void SchweigendeMethode(string param)
Console.WriteLine("...");
public static int BöseMethode(int param)
public static string BöseMethode(string param)
Console.WriteLine(string.Empty);
Console.WriteLine(string.Empty);
var tempText = param.Substring(0, (param.Length - 3) >= 0 ? param.Length - 3: 0);
return tempText + "▓"+ "▒"+ "░";
public static T UniversalReichendeMethode<T>(T param)
Console.WriteLine("Universal: " + param.ToString());