Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

26.01.2016, 11:19

C# Bool ist immer False in Class

Hi, ich bin ein Anfänger in C# und hab folgendes Problem
Ich programmierte eine Datei wo wenn man über 50 eingibt der bool frei dann true wird und wenn man unter 50 was eingibt sollte es False sein soll... Leider funktioniert es nicht so und ich weiß nicht ganz das Problem. Auch wenn man über 50 schreibt ist es false. Könnt ihr mir Helfen damit es funktioniert? Oder welchen Fehler hab ich gemacht?

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
using System;


namespace ConsoleApplication31
{
    class Program
    {
        static void Main(string[] args)
        {
            var nummer = new Sitzen();
            nummer.Platz();
            Console.WriteLine("Nummer eingeben");
            nummer.nummerx = Console.ReadLine();
            nummer.number = Convert.ToInt32(nummer.nummerx);

            if (nummer.frei)
            {
                Console.WriteLine("Dein Platz ist frei!");
            }
            else
            {
                Console.WriteLine("Dein Platz ist besetzt");
            }

            Console.WriteLine(nummer.number);
            Console.WriteLine(nummer.frei);
            Console.WriteLine(nummer.nummerx);
            Console.ReadKey();
        }
    }
    class Sitzen
    {
        public bool frei { get; set; }
        public int number { get; set; }
        public string nummerx { get; set; }

        public void Platz()
        {
            if (number < 50)
            {
                frei = false;
            }
            else
            {
                frei = true;
            }
            

        }

    }
}

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

2

26.01.2016, 11:32

Du rufst die "Platz" Methode auf, bevor du "number" einen Wert zuweist.

3

26.01.2016, 11:33

Geh das Programm mit dem Debugger durch. Wann bekommt 'number' eines 'Sitzen'-Objekts eteas zugewiesen und wann wird 'number' geprüft?

4

26.01.2016, 11:39

Ok, Sylence hatte recht, danke dafür. Bloß mir hat mein Kumpel das so vorgeschlagen das es zum anfang muss :P Danke dafür!

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

5

26.01.2016, 11:41

Nun dann solltest du noch mal zurück zum Buch und dir angucken, warum das so ist, wie es ist.
Nur weil ein "Kumpel" etwas sagt, musst du das nicht gleich so machen, sondern solltest dir überlegen, ob das so richtig ist ;)

Werbeanzeige