Both Java and C# do. In Java marking a variable final makes it immutable after assigned. In C# a variable marked readonly is the same.
More precisely in C# a readonly field of a type can only be assigned to within that type's constructor.
More precisely in C# a readonly field of a type can only be assigned to within that type's constructor.