Utilizzo le proprietà implementate automaticamente. Immagino che il modo più veloce per risolvere il problema sia dichiarare la mia variabile di supporto? MessaggioImpossibile modificare l'errore del valore restituito C#
public Point Origin { get; set; }
Origin.X = 10; // fails with CS1612
Errore: Non è possibile modificare il valore di ritorno di 'espressione' perché non è una variabile
stato effettuato un tentativo di modificare un tipo di valore che è stato il risultato di un intermedio espressione. Poiché il valore non è persistente, il valore sarà invariato.
Per risolvere questo errore, memorizzare il risultato dell'espressione in un valore intermedio oppure utilizzare un tipo di riferimento per l'espressione intermedia.
Questo è un altro esempio del perché i tipi di valori mutabili sono una cattiva idea. Se puoi evitare di mutare un tipo di valore, fallo. –
Prendere il seguente codice (dai miei sforzi a un'implementazione AStar scritto da un certo EL :-), che non poteva evitare di cambiare un tipo di valore: class Path: IEnumerable dove T: INode, new() {... } HexNode pubblico (int x, int y): questo (nuovo punto (x, y)) {} percorso percorso = nuovo percorso (nuovo T (x, y)); // Errore // Ugly fix Path path = new Path (new T()); path.LastStep.Centre = new Point (x, y); –