public static double DurchflussInCm3ProSekunde(Wasserhahn hahn, double Wasserdruck) { return hahn.Rohrdurchmesser * Wasserdruck; }
public void TestMethod1() { StoppUhr meineStoppuhr = new StoppUhr(); // Zugriff auf den inneren Zustand durch schreiben in eine Eigenschaft meineStoppuhr.ZeitInMsEigenschaft = 1000; // Lesen des inneren Zustandes durch lesen einer eigenschaft double gestoppteZeit = meineStoppuhr.ZeitInMsEigenschaft; // Events austesten meineStoppuhr.ZeitLimitInMs = 1000; // Eventhandler registrieren meineStoppuhr.ZeitlimitUeberschrittenEvent += MeinEventhandler; // wg. dem Schlüsselwort event kann der Delegate nicht m,ehr über die Objektinstanz direkt aufgeufen werden //meineStoppuhr.ZeitlimitUeberschrittenEvent(1, 2); meineStoppuhr.Start(); System.Threading.Thread.Sleep(2000); meineStoppuhr.Stopp(); // Eventhandler wieder abkoppeln meineStoppuhr.ZeitlimitUeberschrittenEvent -= MeinEventhandler; // anderen ankoppeln meineStoppuhr.ZeitlimitUeberschrittenEvent += MeinAndererEventhandler; meineStoppuhr.Start(); System.Threading.Thread.Sleep(2000); meineStoppuhr.Stopp(); // Beide Eventhandler ankoppeln meineStoppuhr.ZeitlimitUeberschrittenEvent += MeinEventhandler; meineStoppuhr.Start(); System.Threading.Thread.Sleep(2000); meineStoppuhr.Stopp(); Wasserhahn kleinerHahn = new Wasserhahn(25.4), Absperrhahn = new Wasserhahn(50.8); kleinerHahn.öffnen(50.0); Absperrhahn.öffnen(100.0); kleinerHahn.öffnen(20); Absperrhahn.öffnen(100); Console.WriteLine("Öffnung kleiner Hahn in %: {0:N1}", kleinerHahn.ÖffnungInPromille / 10); kleinerHahn.ÖffnungInPromille = 333; Console.WriteLine("Öffnung kleiner Hahn in %: {0:N1}", kleinerHahn.ÖffnungInPromille / 10); // Zugriff auf statische Methoden Console.WriteLine("Durchfluss: {0:N3}", Wasserhahn.DurchflussInCm3ProSekunde(kleinerHahn, 10)); // Arbeiten mit der Klasse Auto // Objekte konstuieren oder synonym Instanzen instanziieren Auto FredVollgas = new Auto("Ferrari", "Testarossa"); // nur lesbare Eigenschaft kann nicht gesetzt werden //FredVollgas.VolleFahrzeugbezeichnung = "Porsche/Carrera"; Debug.WriteLine(FredVollgas.VolleFahrzeugbezeichnung); // Eine Eigenschaft mit intelligenten Gettern und Settern // Compiler wandelt Zuweisung um in FredVollgas.EntfernungVonStuttgartInKm.set(100); FredVollgas.EntfernungVonStuttgartInKm = 100; // Anlegen von SusiSchleicher mit dem 2. Konstruktor (startet bei 50km) Auto SusiSchleicher = new Auto("VW", "Käfer", 50, 10); Auto AntonNormalo = new Auto("VW", "Golf", 10, 120); // Neu ab .NET 3.5 Objektinitialisierer: Dynamisch einen Konstruktor der Wahl schaffen Auto RudiHandwerker = new Auto("Audi", "A6", 25); Auto[] fahrsteifen = new Auto[] { new Auto("Fiat", "Stilo", 99), new Auto("Dacia", "Logan", 200), new Auto("VW", "Golf", 150) }; Console.WriteLine("Der Wagen von Fred Vollgas iste ein " + FredVollgas.Marke + " Modell " + FredVollgas.Modell); // Marke ist eine nur lesbare Eigenschaft //SusiSchleicher.Marke = "Ferrari"; // Fahren und Position über den Rückgabewert der Methode bestimmen double pos = FredVollgas.fahre(50, 5); Console.WriteLine("Aktuelle Position von Fred Vollgas: {0:N3}", FredVollgas.EntfernungVonStuttgartInKm); double[] v = { 20, 30, 10, 40, 50, 60, 30, 10 }; double[] t = { 40, 20, 30, 5, 3, 7, 10, 15 }; // Simulation: Vorankommen auf dem hat umkämpften linken Fahrstreifen for (int i = 0; i < v.Length; i++) { FredVollgas.fahre(v[i], t[i]); Console.WriteLine("Aktuelle Position von Fred Vollgas: {0:N3}", FredVollgas.EntfernungVonStuttgartInKm); } }