Alternativa de solo lectura a tipos anónimos

En C #, un tipo anónimo puede ser el siguiente:

method doStuff(){
     var myVar = new {
         a = false, 
         b = true
     }

     if (myVar.a) 
     {
         // Do stuff             
     }
}

Sin embargo, lo siguiente no se compilará:

method doStuff(){
     var myVar = new {
         a = false, 
         b = true
     }

     if (myVar.a) 
     {
         myVar.b = true;
     }
}

Esto se debe a que los campos de myVar son de solo lectura y no pueden asignarse a ellos. Parece querer hacer algo como esto último es bastante común; Quizás la mejor solución que he visto es definir una estructura fuera del método.

Sin embargo, ¿realmente no hay otra forma de hacer que el bloque anterior funcione? La razón por la que me molesta es que myVar es una variable local de este campo, por lo que parece que solo debería mencionarse dentro del método que lo utiliza. Además, la necesidad de colocar la estructura fuera del método puede hacer que la declaración de un objeto esté bastante lejos de su uso, especialmente en un método largo.

Puesto de otra manera, ¿existe una alternativa a los tipos anónimos que me permitirá definir una "estructura" como esta (me doy cuenta de que la estructura existe en C # y debe definirse fuera de un método) sin que sea de solo lectura? Si no, ¿hay algo fundamentalmente malo en querer hacer esto, y debería utilizar un enfoque diferente?

Respuestas a la pregunta(10)

Su respuesta a la pregunta