I'm looking for the C# equivalent of Java's final
. Does it exist?
Does C# have anything like the following:
public Foo(final int bar);
In the above example, bar
is a read only variable and cannot be changed by Foo()
. Is there any way to do this in C#?
For instance, maybe I have a long method that will be working with x
, y
, and z
coordinates of some object (ints). I want to be absolutely certain that the function doesn't alter these values in any way, thereby corrupting the data. Thus, I would like to declare them readonly.
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.
}