Autor Beitrag
Frodonet
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Mo 10.11.08 13:27 
Hallo

Ich habe folgendes Problem.
Ich soll 2 Teile in meinem Quelltext in eine Methode auslagern.
Das erste hat soweit geklappt
Doch bei dem hier weiss ich nicht wie. Dieser Bereich wir 3 mal ausgegeben. und es sonn nun als Methode funktionieren.
so z.b. soll ich sie aufrufen(oder auch anderes)
Console.WriteLine(rechteck1.Anzeige);

Vielen Dank schon mal im vorraus



ausblenden Ausgabe der Fläche dieses Rechtecks
1:
2:
3:
4:
            Console.WriteLine("\n  Rechteck");
            Console.WriteLine("  X: " + rechteck1.X);
            Console.WriteLine("  Y: " + rechteck1.Y);
            Console.WriteLine("  Fläche: " + rechteck1.FlaecheBerechnen());


Hier der gesammte Quelltext.
ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
using System;

namespace GSO
{
    public class Rechteck
    {
        public int X = 0;
        public int Y = 0;
        public int Breite = 100;
        public int Hoehe = 100;

        public int FlaecheBerechnen()
        {
            int flaeche = Breite * Hoehe;
            return flaeche;
        }

        public void Vergroessern(int dx, int dy) {
            Breite += dx;
            Hoehe += dy;
        }

        public void Verschieben(int dx, int dy) {
            X += dx;
            Y += dy;
        }
        public void Inistialisieren(int initx, int inity, int initbreite, int inithoehe)
        {
            X = initx;
            Y = inity;
            Breite = initbreite;
            Hoehe = inithoehe;
        }
    }

    class Program
    {
        static void Main(string[] args) {
            //Übergabe Variablen
            int x,y,breite,hoehe;
           
            // Ein Rechteck im Arbeitsspeicher anlegen
            Rechteck rechteck1 = new Rechteck();

            // Daten Abfragen
            Console.WriteLine("\n Rechteck");
            Console.WriteLine("\n Bitte geben sie die X ein: ");
            x = int.Parse(System.Console.ReadLine());
            Console.WriteLine("\n Bitte geben sie die Y ein: ");
            y = int.Parse(System.Console.ReadLine());
            Console.WriteLine("\n Bitte geben sie die breite ein: ");
            breite = int.Parse(System.Console.ReadLine());
            Console.WriteLine("\n Bitte geben sie die hoehe ein: ");
            hoehe = int.Parse(System.Console.ReadLine());

            // Rechteck initialisieren
            rechteck1.Inistialisieren(x, y, breite, hoehe);

            // Ausgabe der Fläche dieses Rechtecks
            Console.WriteLine("\n  Rechteck");
            Console.WriteLine("  X: " + rechteck1.X);
            Console.WriteLine("  Y: " + rechteck1.Y);
            Console.WriteLine("  Fläche: " + rechteck1.FlaecheBerechnen());
           

            // Rechteck bearbeiten verschieben
            rechteck1.Verschieben(100200);
            
            // Ausgabe der Fläche dieses Rechtecks
            Console.WriteLine("\n  Rechteck verschoben x um 100, y um 200");
            Console.WriteLine("  X: " + rechteck1.X);
            Console.WriteLine("  Y: " + rechteck1.Y);
            Console.WriteLine("  +Fläche: " + rechteck1.FlaecheBerechnen());

            // Rechteck bearbeiten vergroessern
            rechteck1.Vergroessern(53);

            // Ausgabe der Fläche dieses Rechtecks
            Console.WriteLine("\n  Rechteck vergrössert breite um 5 und hoehe um 3");
            Console.WriteLine("  X: " + rechteck1.X);
            Console.WriteLine("  Y: " + rechteck1.Y);
            Console.WriteLine("  +Fläche: " + rechteck1.FlaecheBerechnen());

            Console.ReadLine();
        }
    }
}


Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt
Moderiert von user profile iconChristian S.: Topic aus C# - Die Sprache verschoben am Mo 10.11.2008 um 12:32
Thorsten83
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 191
Erhaltene Danke: 1



BeitragVerfasst: Mo 10.11.08 13:49 
user profile iconFrodonet hat folgendes geschrieben Zum zitierten Posting springen:
Hallo

so z.b. soll ich sie aufrufen(oder auch anderes)
Console.WriteLine(rechteck1.Anzeige);


Warum nicht
rechteck1.ausgabe(); ?
Dann musst du dir nur noch überlegen wie du die Funktion in der Rechteck-Klasse aufbaust...
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Mo 10.11.08 13:53 
Hallo und :welcome:,

die gewünschte Methode bezieht sich eindeutig und ausdrücklich auf ein Rechteck (mehrere konstante Texte weisen darauf hin, und es werden Länge und Breite verwendet); also passt sie in die Klasse Rechteck. Ihr Name soll deutlich machen, was sie tut, also z.B. ConsoleWrite(). Die eigentlichen Inhalte, die ausgegeben werden sollen, sind innerhalb der Rechteck-Instanz bekannt; sie müssen also nicht als Parameter/Argument übergeben werden. Unklar ist lediglich der Hinweis auf die aktuelle Situation "verschoben um"; diesen Hinweis kann die Klasse nicht aus dem eigenen Status erkennen, er muss also übergeben werden.

Übrigens bin ich ausdrücklich für englische Bezeichner: Das NET Framework macht aus einem deutschen Bezeichner wie MeinFormular schnell einen schlimmen denglischen Mischmasch wie MeinFormular_Load; also bevorzuge ich direkt englische Begriffe, auch wenn ich eigentlich für die Benutzung der deutschen Sprache bin.

Also kommt so etwas heraus:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
public void ConsoleWrite(string state)
{
   Console.WriteLine("\n  Rechteck" + state);
   Console.WriteLine("  X: " + this.X);
}

"this" kann hier (wie fast immer) weggelassen werden; ich habe es nur zur Verdeutlichung geschrieben.

Viel Erfolg! Jürgen