Wie ich es verstehe, Eigenschaften nicht Referenzen zurückgeben, und da structs Werttypen sind, gibt es keine Möglichkeit, einen Verweis auf eine Struktur über Eigenschaften zurückzukehren, die es ermöglichen würde:Aktivieren Sie die Eigenschaftensyntax für Verweise auf Strukturen?
public struct SomeStruct
{
public int SomeMember { get; set; }
}
class foo
{
private SomeStruct bar;
public SomeStruct Bar{ get { return bar; } set { bar = value; } }
}
//Somewhere else
foo f = new foo();
f.Bar.SomeMember = 42; //Error, this doesn't work
Werde ich zurückgreifen müssen setMemberOfSomeStruct() oder gibt es einen anderen Weg?
edit: Konkret möchte ich vermeiden, für solche Strukturen die ganze Zeit neu aufrufen zu müssen. Ich weiß, dass mit einem Konstruktor SomeStruct (int), das funktionieren würde:
f.Bar = new SomeStruct(42); //ugh
Verwenden Sie keine veränderlichen Strukturen, da sie böse sind. Verwenden Sie unveränderliche Strukturen. – Servy
Seltsam. Ist das ein schlechter Entwurf in XNA? Es hat eine Struktur Rectangle mit 4 Ints. Ich muss nur zwei der 4 Eingänge sehr oft aktualisieren.Muss ich wirklich jedes Mal ein neues Rechteck erstellen, nur um dies zu tun? – TravisG
Ja. Erstellen einer neuen Struktur ist keine teure Operation, es ist sehr billig. Das ist der Hauptgrund für die Verwendung von Strukturen an erster Stelle. – Servy