Estoy buscando el equivalente en C # de Java final
. ¿Existe?
¿C # tiene algo parecido a lo siguiente:
public Foo(final int bar);
En el ejemplo anterior, bar
es una variable de solo lectura y no se puede cambiar por Foo()
. ¿Hay alguna forma de hacer esto en C #?
Por ejemplo, tal vez tengo un método mucho tiempo que va a trabajar con x
, y
y z
las coordenadas de un objeto (enteros). Quiero estar absolutamente seguro de que la función no altera estos valores de ninguna manera, corrompiendo así los datos. Por lo tanto, me gustaría declararlos de solo lectura.
public Foo(int x, int y, int z) {
// do stuff
x++; // oops. This corrupts the data. Can this be caught at compile time?
// do more stuff, assuming x is still the original value.
}