Интересно, если чуть-чуть изменить:
## Код:
```
public void Init(int x)
            {
                System.Console.WriteLine("x = {0}", x);
                System.Console.WriteLine("this.value = {0}", this.value);
                this.value = x;
                System.Console.WriteLine("this.value = {0}", this.value);
            }
```
,то видно, что значение this.value меняется на 5, но значение foo.value остаётся равным 0...