Kleines Programm bedarf Durchsicht



  • Hey danke,echt super dass du mir hilfst.
    STimmt ja mit den Methoden am Ende () hast du recht.
    Das mit this kannte ich noch nicht, aber super dass das dann funktioniert.

    Bekomme jetzt nur noch die Fehler:

    uebung11aufgabe2.cs(25,6): error CS0029: Cannot implicitly convert type `string' to `double'
    uebung11aufgabe2.cs(30,6): error CS0029: Cannot implicitly convert type `string' to `double'
    uebung11aufgabe2.cs(12,7): error CS0535: `aufgabe2.Zylinder' does not implement interface member `aufgabe2.DreiDKoerper.volumen()'
    uebung11aufgabe2.cs(8,6): (Location of the symbol related to previous error)
    uebung11aufgabe2.cs(12,7): error CS0535: `aufgabe2.Zylinder' does not implement interface member `aufgabe2.DreiDKoerper.mantelflaeche()'
    uebung11aufgabe2.cs(9,6): (Location of the symbol related to previous error)
    


  • Zylinder.Hoehe = Console.ReadLine();
    

    Hier ist immernoch der Fehler, zumindest wird das in der Fehlermeldung angezeigt.
    Weiterhin musst du hier von String in double Konvertieren. Problem ist nämlich, über Readline wird ein String von der Konsole gelesen du willst aber diesen String in einen Double packen, was natürlich nicht geht.
    Abhilfe schafft das hier:

    this.Hoehe = Convert.ToDouble(Console.ReadLine());
    

    An deiner stelle würde ich die Zylinderklasse so hier aufbauen.

    class Zylinder : DreiDKoerper
    {
        public double Hoehe{get;private set;}
        public double Radius {get;private set;}
    //hier dein rest.
    
    }
    


  • uebung11aufgabe2.cs(12,7): error CS0535: `aufgabe2.Zylinder' does not implement interface member `aufgabe2.DreiDKoerper.volumen()'
    uebung11aufgabe2.cs(8,6): (Location of the symbol related to previous error)
    uebung11aufgabe2.cs(12,7): error CS0535: `aufgabe2.Zylinder' does not implement interface member `aufgabe2.DreiDKoerper.mantelflaeche()'
    uebung11aufgabe2.cs(9,6): (Location of the symbol related to previous error)
    

    Hab dann nur noch diese Fehler.Heißt irgendwie können meine klassen nicht auf das interface zugreifen oder? ne lösung?



  • -.- Du Witzbold. Schau dir mal die Rückgabewerte der Methoden in deinem Interface an und die in deiner Klasse, die müssen schon überein stimmen.



  • Omg*schäm* ja ich sehs...
    Weil das das erste war was ich geändert habe in den Klassen von void auf double umzusteigen hab ich es im interface vergessen.
    Nungut, jetzt wo ich beides im Interface auf double geändert habe, kriege ich nun doch noch diese Fehler:

    uebung11aufgabe2.cs(89,10): error CS0120: `aufgabe2.Zylinder.setattr1()': An object reference is required for the nonstatic field, method or property
    uebung11aufgabe2.cs(89,10): error CS0120: `aufgabe2.Zylinder.setattr1()': An object reference is required for the nonstatic field, method or property
    uebung11aufgabe2.cs(90,10): error CS0120: `aufgabe2.Zylinder.setattr2()': An object reference is required for the nonstatic field, method or property
    uebung11aufgabe2.cs(90,10): error CS0120: `aufgabe2.Zylinder.setattr2()': An object reference is required for the nonstatic field, method or property
    uebung11aufgabe2.cs(91,10): error CS0120: `aufgabe2.Zylinder.print()': An object reference is required for the nonstatic field, method or property
    uebung11aufgabe2.cs(91,10): error CS0120: `aufgabe2.Zylinder.print()': An object reference is required for the nonstatic field, method or property
    uebung11aufgabe2.cs(92,9): error CS0120: `aufgabe2.Wuerfel.setattr1()': An object reference is required for the nonstatic field, method or property
    uebung11aufgabe2.cs(92,9): error CS0120: `aufgabe2.Wuerfel.setattr1()': An object reference is required for the nonstatic field, method or property
    uebung11aufgabe2.cs(93,9): error CS0120: `aufgabe2.Wuerfel.print()': An object reference is required for the nonstatic field, method or property
    uebung11aufgabe2.cs(93,9): error CS0120: `aufgabe2.Wuerfel.print()': An object reference is required for the nonstatic field, method or property
    


  • Lies doch bitte meinen ersten Beitrag nochmal genau, ich hatte was zu dem "Zylinder.settAttr"-Gedöns gesagt. Du sollst dort ein Objekt erzeugen.



  • aja habs jetzt umgeändert und versucht sowie du es gesagt hast:

    public static void Main ()
    {
    Zylinder vartest;
    Wuerfel vartest2;
    vartest.setattr1();
    vartest.setattr2();
    vartest.print();
    vartest2.setattr1();
    vartest2.print();
    }
    

    ABer nun krieg ich das als Fehler:

    aufgabe2.cs(91,1): error CS0165: Use of unassigned local variable `vartest'
    aufgabe2.cs(94,1): error CS0165: Use of unassigned local variable `vartest2'
    

    ALso hab ich die Objekte irgendwie falsch erstellt???



  • Ja hast du, und nun liest du dir nochmal ien tutorial durch wie man ein Objekt richtig erzeugt.

    Google-> "C# Objekt erzeugen"



  • ok vielen dank 🙂
    stimmt dass ich dann = new...setzen muss, jetzt funktionierts



  • Na siehste 😉


Anmelden zum Antworten