5 Stimmen

c# = Operator-Problem

In C# habe ich eine einfache 3D-Vektorklasse.

static void Main(string[] args)
{
    Vector3D a, b;
    a = new Vector3D(0, 5, 10);
    b = new Vector3D(0, 0, 0);

    b = a;
    a.x = 10;

    Console.WriteLine("vector a=" + a.ToString());
    Console.WriteLine("vector b=" + b.ToString());
    Console.ReadKey();
}

ist die Ausgabe,

Vektor a= 10, 5, 10

Vektor b= 10, 5, 10

Ich weise a zu, bevor ich a.x auf 10 ändere. Ich hatte also erwartet

Vektor a= 10, 5, 10

Vektor b= 0, 5, 10

Von was ich verstehe = Operator weist einen Verweis auf Objekt wie ein Zeiger? Und in C# kann ich nicht überladen = Operator.

Muss ich jede Eigenschaft manuell zuweisen?

0voto

Doc Brown Punkte 19104

Kein Bedarf für eine struct schlage ich vor, dass Sie Ihre Vector3D als unveränderlich Klasse. Hier sind einige gute Beispiele. Ja, natürlich, a.x = 10 ist bei einer unveränderlichen Klasse nicht möglich.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X