[c#] Un accesso di proprietà, indicizzatore o membro dinamico non può essere passato come parametro out o ref


Answers

Se esiste un solo parametro ref e nessun tipo di ritorno per MutatePosition, è possibile restituire il valore.

painting.Circles[mutationIndex] = MutatePosition(circle, painting.Width, painting.Height);

Se esistono più parametri di riferimento e / o già un tipo di reso, è possibile creare un nuovo tipo che includa tutto ciò che deve essere restituito.

class MutateResults() { Circle Circle; object OtherReffedStuff; }
Question

Ciao ho problemi a capirlo. Ho queste strutture e classi.

struct Circle
{ ... }

class Painting
{
     List<Circle> circles;

     public List<Circle> circles
     {
          get { return circles; }
     }
}

Sto cercando di modificare uno dei cerchi all'interno della classe di pittura da fuori, usando questo codice:

MutatePosition(ref painting.Circles[mutationIndex], painting.Width, painting.Height);

Questa riga mi sta dando un errore del compilatore:

Un accesso di proprietà, indicizzatore o membro dinamico non può essere passato come parametro out o ref

Perché è questo e cosa posso fare per risolverlo senza modificare troppo il mio codice?




Links