[C#] ToInt32()

Fisch

Mitglied
Hallo zusammen. Mal wieder eine Frage. Folgender Code stammt aus dem Buch C# lernen:

using System;

public class Addition
{
public int Addiere(int a, int b)
{
return a+b;
}

public int Addiere(int a, int b, int c)
{
return a+b+c;
}

public int Addiere(int a, int b, int c, int d)
{
return a+b+c+d;
}
}

public class Beispiel
{
public static void Main()
{
Addition myAdd = new Addition();

int a = Console.ReadLine().ToInt32(); <-----
int b = Console.ReadLine().ToInt32(); <-----
int c = Console.ReadLine().ToInt32(); <-----
int d = Console.ReadLine().ToInt32(); <-----

Console.WriteLine("a+b = {0}",myAdd.Addiere(a,b));
Console.WriteLine("a+b+c = {0}",myAdd.Addiere(a,b,c));
Console.WriteLine("a+b+c+d = {0}",myAdd.Addiere(a,b,c,d));
}
}


Für die Zeilen int a= ........ToInt32(); wird mir beim Compilieren der Fehler gemeldet 'string' enthält keine Definition für 'ToInt32'
Ist das jetzt im Buch(und auf der CD)falsch oder woran liegts??
Wenn es woanders dran liegt, woher sollte der Compiler Wissen das die Methode ToInt32()in der Klasse Convert liegt (oder sollte ich solche Fragen nicht stellen, bevor ich das Buch zu Ende gelesen habe)??

Bin für Erklärungen sehr dankbar.

Gruss

Fisch
 
Tja, da verwendest Du leider ein Buch, dass die "alte" bzw. Beta-Version von C# verwendet! Ich weiss ist nicht schön!

Folgender Beispielcode hat mit der Betaversion von C# funktioniert:
Code:
//Beispielcode ...
public class TestClass {

  public static void Main() {
  
    int aInteger;
    string aString = "5";
	
    //Umwandlung
    aInteger = aString.ToInt32();
	
  }
}

Nun ist es aber so, dass Microsoft die Deklaration der Methode ToInt32() aus dem Datentyp String entfernt hat. Daher muss ein anderer Weg gegangen werden. Es existiert nun eine Klasse Convert, die alle notwendigen Methoden einführt, um entsprechende Konvertierungen durchzuführen. Der obige Code kann also ganz leicht umgeschrieben werden:

Code:
//Beispielcode ...
public class TestClass {

  public static void Main() {
  
    int aInteger;
    string aString = "5";
	
    //Umwandlung
    aInteger = Convert.ToInt32(aString);
	
  }
}

Also Du musst Dein Beispiel ebenfalls anpassen!!!
 
So langsam schliesst sich der Kreis mit meinen ganzen Problemen :)
Wenigstens war ich ja dann auf dem richtigen Weg, hätte mich auch gewundert wenns hätte funktionieren müssen.
Hab jetzt herausbekommen (vom Author selbst), das es eine zweite Auflage von dem Buch gibt, werd mal schauen dass ich es umtausche. Hätte mir wahrscheinlich paar Stunden gespart.

Übrigens Danke das Du so fleissig Antwortest

Gruss

Fisch
 
Zurück