-
        

Ergebnis 1 bis 8 von 8

Thema: Hilfe beim Lernen von C#

  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.07.2004
    Ort
    Mammendorf
    Alter
    61
    Beiträge
    1.058

    Hilfe beim Lernen von C#

    Anzeige

    Hallo Freunde

    Als Teil meiner Projekte möchte ich dazu passende Software auf dem PC schreiben und habe dafür Visual Studio 2010 mit Visual C# als Sprache. Als Lehrbuch verwende ich das sehr empfehlenswerte Buch von Andreas Kühnel, Visual C# 2010, "Das Unfassende Handbuch", was man komplett und legal Online sehen kann unter.

    Leider weisst das Buch einige Inkonsistenten im Quelltext zwischen den Kapiteln auf, jedoch ist das Beheben der Probleme eine hilfreiche Übung beim Lernen.

    Jetzt habe ich 3 Fehler-Meldungen, die ich nicht verstehe, und dass, obwohl ich eigentlich meine den Kode aus dem Buch korrekt übernommen zu haben. der Fehlerkode ist CS0103 in allen 3 Fällen. Hier der Quelltext aus der Program.cs Datei:

    Code:
    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    namespace GeometricObjects
    {
    publicclassProgram
    {
    GraphicCircle gc = newGraphicCircle();
    staticvoid Main(string[] args)
    {
    Circle kreis = newCircle ();
    kreis.Radius = 20;
    kreis.XKoordinate = 10;
    kreis.YKoordinate = 10;
    if (kreis == null)
    {
    // die Variable kreis referenziert kein Objekt
    Console.Write("kein Kreis vorhanden\n"); 
    kreis = newCircle();
    }
    else
    {
    // Kreis ist eine gültige Objektreferenz 
    Console.WriteLine("Der Kreisradius beträgt {0,10}", kreis.Radius);
    Console.Write("Die X-Koordinate beträgt {0,10}\n", kreis.XKoordinate);
    Console.WriteLine("Der Y-Koordinate beträgt {0,10}\n", kreis.YKoordinate); 
    Console.ReadLine();
    }
    }
    }
    }
    
    Der Debugger sagt, dass der Name "Console" im aktuellen Kontext nicht vorhanden sei!

    Der 2. ganz ähnlich gelagerte Fehler bezieht sich auf den Namen "Math" in folgenden Quelltext:

    Code:
    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    namespace GeometricObjects
    {
    publicclassProgram 
    {
    GraphicCircle gc = newGraphicCircle();
    staticvoid Main(string[] args)
    {
    Circle kreis = newCircle ();
    kreis.Radius = 20;
    kreis.XKoordinate = 10;
    kreis.YKoordinate = 10;
    if (kreis == null)
    {
    // die Variable kreis referenziert kein Objekt
    Console.Write("kein Kreis vorhanden\n"); 
    kreis = newCircle();
    }
    else
    {
    // Kreis ist eine gültige Objektreferenz 
    Console.WriteLine("Der Kreisradius beträgt {0,10}", kreis.Radius);
    Console.Write("Die X-Koordinate beträgt {0,10}\n", kreis.XKoordinate);
    Console.WriteLine("Der Y-Koordinate beträgt {0,10}\n", kreis.YKoordinate); 
    Console.ReadLine();
    }
    }
    }
    }
    
    Ich hoffe es kann mir jemand helfen.
    MfG

    Hellmut

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.186
    Hier wirst du ja schon nachgeschaut haben. http://msdn.microsoft.com/de-de/libr...=vs.80%29.aspx
    Bei mir kommen solche Fehler wenn ich die entsprechende Library mit #include nicht eingebunden habe.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    22.06.2009
    Beiträge
    1.266
    Also erstens solltest du mal versuchen deine Quelltextformatierung etwas zu überarbeiten, die wirkt sehr unübersichtlich (kann natürlich auch nur durchs kopieren kommen)
    Dann:
    "public class Program" schreibt man außeinander, also zwischen public und class z.B. ein Leerzeichen
    Dann, auswelchem namespace bzw. Woher kommt die Klasse Circle / GraphicCircle ? Und warum brauchst du ein Grafikobjekt (GraphicCircle hört sich danach an) in einer Konsolenanwendung?

    Warum der Console nicht kennt wundert mich jetzt auch, da du die entsprechenden usings hinzugefügt hast.
    Überprüf mal im Projektmappen-Explorer unter Verweise ob auch die richtigen Verweise auf System usw. vorhanden sind.
    Du hast in den Projekteinstellungen auch unter Ausgabetyp: "Konsolenanwendung" gewählt. (Bzw. du hast eine Konsolenanwendung erstellt?)

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.07.2004
    Ort
    Mammendorf
    Alter
    61
    Beiträge
    1.058
    Erstmal Danke für die ersten Antworten. es ist richtig, die Formatierung ist durch das Kopieren verloren gegangen. In Editor von Visual Studio 2010 wird das ordentliche Formatieren ja von haus aus sehr unterstützt. Auch die Lehrzeichen wie oben zu recht kritisiert befinden sich im Original im Editor.

    Das Lehrbuch fängt dankenswerter Weise mit etwas ähnlichen wie "Hello World" an und führt in die IDE, Visual C# und .Net ein. Das Programm erarbeitet man sich im Laufe der Durcharbeit des Lehrbuches. Die Console macht ja das "Hello World" sehr einfach, immer F5 drücken und schon erscheint das Konsolen-Fenster und man erkennt an dem Inhalt ob das gewollte geklappt hat. Im Laufe des Buches wird dann auch auf eine grafische Oberfläche übergegangen, so bleibt das Programm und das Verstehen doch viel einfacher.

    Im jetzigen Kapitel arbeite ich mich in Vererbung, Polimorphie und Interfaces ein. In den früheren Kapiteln habe ich zuerst nur eine Klasse Circle definiert und GraphicCircle ist eine Solche Klasse die die Eigenschaften von Circle erbt.

    Die Fehlermeldungen vom Debugger sprechen davon, dass "Math" und "Console" in dem Kontext nicht verfügbar sein. Ich versuche zu verstehen warum! es sind ja genau die Grundverständnisse die ich mir erarbeiten will!

    @Hubert: Obwohl ich vor vielen Jahren Einführungskurse zu C genommen habe, bin ich nie ein C Programmierer gewesen. Ich freue mich mit Visual Studio 2010 und dem Lehrbuch auf welches ich das Link gegeben habe, nicht erst versuchen zu müssen das Konzept der Tool Chain und wie man sie richtig konfiguriert erarbeiten zu müssen. da habe ich bei mehreren Versuchen nach einiger Qual und Hoffnungslosigkeit aufgegeben. Nach den Lehrbuch habe ich mit den mit "using" angesprochenen Klassen, direkt vom Lehrbuch übernommen, der Notwendigkeit genüge getan was sonst mit den #include gemacht wird.

    Ich denke das ich durch Formatierungs- oder Tippfehler irgendwie dafür gesorgt habe, dass "Math" und "Console" so an der Stelle im Kodenicht verfügbar sind! Vergesst nicht es geht ja um Vererbung, usw.!
    MfG

    Hellmut

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    22.06.2009
    Beiträge
    1.266
    Dadurch dass Console (zumindest wenn man Konsolenanwendung als Typ wählt) static ist, kann man von überall im Programm drauf zugreifen. Probier mal test weise den Rest rauszuschmeißen und nur ne Kleinigkeit auf der Console auszugeben. Wenn das NICHT gehen sollte, leg das Projekt noch mal neu an

    PS. Wenn du dich auch in Zunkunft weiter mit C# beschäftigen willst kannst ja mal hier vorbeischaun
    http://www.mycsharp.de

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.07.2004
    Ort
    Mammendorf
    Alter
    61
    Beiträge
    1.058
    Hallo shedepe

    bevor ich mich mit den Übungen und Kode zu den Vererbungen beschäftigt habe hat die Anweisung perfekt funktioniert. Das ist ja das Problem, warum jetzt nicht. das möchte ich wissen, da es hier um entscheidendes zum verständnis der Sprache und der Objekt-Programmierung geht.

    Habe übrigens unter dem Link nachgeschaut. Sehr interessantes Forum, für einen bltugigen Anfänger allerdings nicht gedacht, wie die Forenregeln sagen.
    Geändert von Hellmut (11.06.2011 um 00:07 Uhr)
    MfG

    Hellmut

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    22.06.2009
    Beiträge
    1.266
    Dennoch kannst du versuchen, das ganze noch mal als neues Projekt zu erstellen, nicht dass eine zerschossene Projekteinstellung dein Problem ist. Die Vererbung sollte eigentlich keine Auswirkung auf den Zugriff auf die Consoleklasse haben.
    In dem Forum kannst du besonders im Bereich Artikel und FAQ einiges lernen, da dort viele Anfängerfragen recht gut beantwortet und zusammengefasst sind

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.07.2004
    Ort
    Mammendorf
    Alter
    61
    Beiträge
    1.058
    Da hast du natürlich recht, aber mit dem Buch, auf welches auch dort an prominenter Stelle verwiesen wird, habe ich schon eine gute Quelle. Wenn ich dich richtig verstehe, so meinst du, dass dieser Fehler so eigentlich nicht auftauchen sollte?
    MfG

    Hellmut

Ähnliche Themen

  1. hilfe Anfänger braucht hilfe beim start
    Von thomas3 im Forum Robby RP6
    Antworten: 26
    Letzter Beitrag: 20.09.2010, 22:07
  2. Hilfe beim Schaltplan?
    Von landmine im Forum Asuro
    Antworten: 7
    Letzter Beitrag: 03.09.2010, 02:32
  3. Pins, Ports und Fragen beim Lernen...
    Von squelver im Forum C - Programmierung (GCC u.a.)
    Antworten: 50
    Letzter Beitrag: 16.08.2007, 16:20
  4. Hilfe beim ASURO
    Von braveking im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 1
    Letzter Beitrag: 08.01.2007, 16:55
  5. Hilfe beim Bau!
    Von sReaper im Forum Mechanik
    Antworten: 1
    Letzter Beitrag: 05.03.2005, 14:25

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •