static bool exec() { var bismarck = new Schlachtschiff() { AnzLeben = 100, Feuerkraft = 10 }; var hood = new Schlachtschiff() { AnzLeben = 70, Feuerkraft = 10 }; schiessen(bismarck, hood); bismarck.schiessenAuf(hood); // Kompiler übersetzt den vorausgegangenen Ausdruck in folgenden SchlachtschiffExtensions.schiessenAuf(bismarck, hood); return(true); }
// Klassische Lösung, einen Vorgegebene Klasse um Funktionen zu erweitern static void schiessen(Schlachtschiff feuernde, Schlachtschiff befeuerte) { befeuerte.AnzLeben -= feuernde.Feuerkraft; }
public static void schiessenAuf(this Schlachtschiff feuernde, Schlachtschiff befeuerte) { befeuerte.AnzLeben -= feuernde.Feuerkraft; }