Download: Diese Datei kann heruntergeladen werden, wenn der Button mit der rechten Maustaste angeklickt und der Speicherbefehl aus dem Kontextmenü gewählt wird. --------- Bekannte Probleme: ***************** Allgemein: ***************** Seite 42 unten: Statt 11.3 11 lautet die Ausgabe 11,3000001907349 11 wobei die letzten Stellen unterschiedlich sein können. Seite 71 im unteren Kasten: statt cout << "Der Wert ist zehn."; muss es heißen Console.WriteLine("Der Wert ist zehn."); Seite 197 oben: Dort ist ein "Zahlendreher". Statt 324589 muss es heißen 324598 Seite 146/147 im Bspl045a: Statt if (value >= 0 && value <= 0.1) sollte es dort heißen if (value >= 0m && value <= 0.1m) ********************** .net Framework Beta2: ********************** Fließkommazahlen und Genauigkeit: ================================= Bei sämtlichen Fließkomma-Zahlen auf der Kommandozeile wird immer die länderspezifische Einstellung aus der Systemsteuerung berücksichtigt, d.h. Dezimalseparator ist das "," und nicht der ".". Das selbe gilt auch für die Eingabe für Kommas, also: Seite 66, Bspl017.cs: Die Zeile string text2 = "12.45"; muß dann string text2 = "12,45"; stehen. Ansonsten führt das Programm es so aus, als würde dort "1245" stehen. Seite 89, Bspl029.cs: Statt Bspl029 15.5 32,5 muß man Bspl029 15,5 32,5 eingeben Die gemischte Dezimalangabe kommt nicht mehr vor. Die Ausgabe der maximalen Stellen nach dem Komma hat sich geändert, also: Seite 41, Bspl005.cs: Die Ausgabe lautet statt: 10,123457 10,123456789012346 10,123456789012345678901234568 nun: 10,12346 10,1234567890123 10,123456789012345678901234568 Entsprechendes gilt für Bspl055.cs: Bspl056.cs: Bspl057.cs: Bspl058.cs Konvertierungen: ================ Konvertierungsmethoden von 'string' werden wohl nicht mehr unterstützt, daher: Seite 65, Bspl017.cs: statt Console.WriteLine(text1.ToBoolean()); Console.WriteLine(text2.ToSingle()*2); jetzt nur noch wie in Bspl003.cs: Console.WriteLine(Convert.ToBoolean(text1)); Console.WriteLine(Convert.ToSingle(text2)*2); Entsprechendes gilt für Bspl018.cs Bspl018a.cs Bspl019.cs Bspl020.cs Bspl025.cs Bspl029.cs Bspl030.cs Aufg14.cs Aufg16.cs Programmablauf: =============== Auch das letzte 'case' sowie das 'default' müssen durch ein 'break;' abgeschlossen werden, also: Seite 75, Bspl020.cs: statt case 5: Console.Write("Satz "); gilt case 5: Console.Write("Satz "); break; Dieses Problem tritt ebenfalls auf bei Bspl020.cs Bspl021.cs Bspl022.cs Die Garbage Collection wurde verändert: Seite 109, Bspl035.cs: Die Ausgabe lautet nicht Tschüüss... 22 sondern Tschüüss... 22 Tschüüss... was auch so sein sollte, da Speicher beim Programmende freigegeben wird. Offenbar unterscheiden sich ref und out nicht mehr in der Signatur, denn: Seite 123, Bspl040.cs: Beim Kompilieren erscheint die Fehlermeldung: C:\csharp>csc Bspl040.cs Microsoft (R) Visual C# Compiler Version 7.00.9254 [CLR version v1.0.2914] Copyright (C) Microsoft Corp 2000-2001. All rights reserved. Bspl040.cs(25,14): error CS0663: 'Auszahlen' cannot define overloaded methods which differ only on ref and out Bspl040.cs(21,14): (Location of symbol related to previous error) Mit der selben Fehlermeldung endet auch das Kompilieren von Bspl042.cs, Bspl066.cs und Aufg17.cs Beheben kann man dies, indem ein Parametertyp, entweder bei ref oder out, geändert wird, z.B. 'double' statt 'decimal' oder indem eine dieser beiden Methoden umbenannt wird, z.B. in Auszahlen2. Namensräume: ============ Das grafische Programm Bspl069.cs ist für das .NET Framework Beta1 entwickelt worden. Für die Folgeversion hat Microsoft Änderungen in der Organisation der Namensräume und einigen Klassendefinitionen vorgenommen. ab Seite 228: Es muß nun statt System.WinForms immer System.Windows.Forms heißen. Seite 229, Anweisung (16): Die Zeile mainMenu1.MenuItems.All = new System.WinForms.MenuItem[1] {this.menuItem1}; muss nun mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[1] {this.menuItem1}); lauten. Seite 229, Anweisung (19): Die Zeile menuItem1.MenuItems.All = new System.WinForms.MenuItem[1] {this.menuItem2}; muss nun menuItem1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[1] {this.menuItem2}); lauten. Seite 229, Anweisung (22): statt this.Cursor = System.Drawing.Cursors.Cross; lautet es this.Cursor = System.Windows.Forms.Cursors.Cross; Seite 230, Anweisung (36): Die für den Text genutzte Farbe lautet nun statt "Cornflower" "CornflowerBlue". Seite 234: Das Programm kann man nun mit einem einfachen csc /t:winexe Bspl069.cs kompilieren. Microsoft.Win32.InterOp.dll gibt es im .NET Framework Beta2 nicht mehr. Unsafe Code: ============ Seite 235, Bspl070.cs: unsafe verlangt nun hinter sich geschweifte Klammern. So muß es nun statt unsafe Tausche(&a, &b); so heißen unsafe { Tausche(&a, &b); } und statt unsafe fixed (int* p1=&A, p2=&B) Tausche(p1, p2); so heißen unsafe { fixed (int* p1=&A, p2=&B) Tausche(p1, p2); } ******************* Release Candidate: ******************* Keine weiteren Änderungen.