Autor Beitrag
Dingo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 64
Erhaltene Danke: 1



BeitragVerfasst: Di 21.03.17 12:02 
Grüße!

Kleine Frage zu folgendem Code:

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:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Lektion1 {

    class Luftfahrzeug {
        protected string kennung;

        public Luftfahrzeug(string kennung) {
            this.kennung = kennung;
        }
    }

    class Uebung {
        public void ObjectMethoden() {
            Luftfahrzeug flieger1 = new Luftfahrzeug("LH 3000");
            Luftfahrzeug flieger2 = new Luftfahrzeug("LH 4000");
            Luftfahrzeug flieger3 = flieger1;
        }
    }

    class Program {
        static void Main(string[] args) {
            Uebung ue = new Uebung();
            ue.ObjectMethoden();
            Console.WriteLine("flieger1 gleich flieger2 ? {0}", flieger1.Equals(flieger2));
            Console.WriteLine("flieger1 gleich flieger3 ? {0}", flieger1.Equals(flieger3));
            Console.WriteLine(Object.Equals(flieger1, flieger2));
            Console.ReadLine();
        }
    }
}


Bei diesen drei Zeilen

ausblenden C#-Quelltext
1:
2:
3:
            Console.WriteLine("flieger1 gleich flieger2 ? {0}", flieger1.Equals(flieger2));
            Console.WriteLine("flieger1 gleich flieger3 ? {0}", flieger1.Equals(flieger3));
            Console.WriteLine(Object.Equals(flieger1, flieger2));


Bekomme ich diese Fehler:

Der Name 'flieger3' ist im aktuellen Kontext nicht vorhanden.
Der Name 'flieger2' ist im aktuellen Kontext nicht vorhanden.
Der Name 'flieger2' ist im aktuellen Kontext nicht vorhanden.
Der Name 'flieger1' ist im aktuellen Kontext nicht vorhanden.
Der Name 'flieger1' ist im aktuellen Kontext nicht vorhanden.
Der Name 'flieger1' ist im aktuellen Kontext nicht vorhanden.

Seht ihr da einen Fehler, habs 1:1 aus dem Buch abgeschrieben und kann mir da keinen Reim drauf machen.
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4014
Erhaltene Danke: 826

Win7
C++, C# (VS 2015/17)
BeitragVerfasst: Di 21.03.17 12:35 
Hallo,

die drei Variablen sind ja nur lokal innerhalb der Methode ObjectMethoden definiert!
Diese müssen dann als Member der Klasse Uebung definiert werden (noch besser gleich als Eigenschaften) und beim Zugriff mußt du dann auch die Uebung-Referenz angeben:
ausblenden C#-Quelltext
1:
ue.flieger1.Equals(ue.flieger2);					


Oder aber gleich die Tests in die Methode ObjectMethoden mit dazu packen.

Dies scheint jetzt für dich ein guter Zeitpunkt zu sein, dich auch mit Unit-Tests auseinander zu setzen: [Artikel] Unit-Tests: Einführung in das Unit-Testing mit VisualStudio

Für diesen Beitrag haben gedankt: Dingo