Hallo Programmierer,
folgendes Problem habe ich: Ich bin gerade dabei, meine C# Kenntnisse zu vertiefen und bin nun auf die Strukturen gestoßen.
In dem Buch steht, dass es 2 Möglichkeiten gibt, auf Strukturen zuzugreifen.
1. Möglichkeit, ich initialisiere sie mit dem Schlüsselwort new wie auch schon bei Klassen gewohnt
2. Möglichkeit, ich deklariere die lokale Variable, und greife direkt auf die Member drauf zu.
Und hier ist mein Problem, aber am besten liefere ich dazu erstmal den Code:
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:
| class Program { static void Main(string[] args) { Coords myCoords; myCoords.X = 15; myCoords.Y = 16; myCoords.Z = 20; myCoords.WriteCoords(); Console.ReadLine(); } }
public struct Coords { private int x; private int y; private int z;
public int X { get { return this.x; } set { this.x = value; } }
public int Y { get { return this.y; } set { this.y = value; } }
public int Z { get { return this.z; } set { this.z = value; } }
public void WriteCoords() { Console.WriteLine("X: {0}", this.x); Console.WriteLine("Y: {0}", this.y); Console.WriteLine("Z: {0}", this.z); }
} |
So, wenn ich das ganze versuche zu kompilieren, gibt es folgende Fehlermeldung:
Verwendung der nicht zugewiesenen Variablen myCoords (Z. 12).
Wieso? Ich habe dieses Programm abgesehen der Methode WriteCoords 1:1 aus dem Buch abgetippt.
(Falls nun die Frage aufkommt, um welches Buch es sich denn handle, es ist das Buch Visual C# 2005 von Frank Eller aus dem Addison-Wesley Verlag)
Gehe ich hin und mache folgendes in der Main-Methode, dann geht es:
C#-Quelltext
1:
| Coords myCoords = new Coords(); |
In diesem falle würden in meinen Augen Strukturen aber gar keinen Sinn ergeben, da sie ja dann genauso arbeiten würden wie eine Klasse auch.