Я ищу эквивалент С# для Java final
. Он существует?
Имеет ли С# что-нибудь вроде следующего:
public Foo(final int bar);
В приведенном выше примере bar
является переменной только для чтения и не может быть изменена на Foo()
. Есть ли способ сделать это в С#?
Например, возможно, у меня есть длинный метод, который будет работать с координатами x
, y
и z
для некоторого объекта (ints). Я хочу быть абсолютно уверенным, что функция никак не изменяет эти значения, тем самым искажая данные. Таким образом, я хотел бы объявить их только для чтения.
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.
}