Supongo que necesita pasar una referencia a bool, que no puede envolver con una clase 'BoolWrapper', porque el bool vive en un lugar que no puede o no desea modificar.
¡Se puede hacer!
Primera declarar lo que cualquier referencia bool se verá como
/// <summary> A reference to a bool.</summary>
/// <param name="value">new value</param>
/// <returns>Value of boolean</returns>
public delegate bool BoolRef(bool? value = null);
Ahora usted puede hacer una referencia a myBool como esto
bool myBool; // A given bool that you cannot wrap or change
private bool myBoolRef(bool? value) {
if (value != null) {
myBool = (bool)value;
}
return myBool;
}
Y utilizar de esta manera:
void myTestCaller() {
foo(myBoolRef);
}
void foo(BoolRef b) {
bool c = b(); // get myBool
b(true); // set myBool to true
}
El mismo truco funciona para otros tipos de valores, como int
Refactor a una única referencia ?? –
¿Puede explicar el escenario en el que necesitará algo así? – shahkalpesh
¿por qué le gustaría hacer esto? si proporciona más detalles, tal vez alguien haga una manera de hacer lo que realmente desea. – Zack