しばしば値型と参照型の動作の違いをイミュータブルなオブジェクトの挙動とごっちゃにしている例があるようなので整理。 ついでに派生してイミュータブルとか破壊的とか非破壊的とか。うまく文章まとまりませんでした。 値型と参照型の動作の違い(結論) 次のような例で動作の違いが出る。 [TestClass] public class ReferenceTypeTest { [TestMethod] public void MainMethod() { // あるクラスのあるプロパティを 1 にしてインスタンスを生成 var someInstance = new SomeClass { SomeProperty = 1 }; // メソッドに渡す SomeMethod(someInstance); // 値は 2 に書き換えられている Assert.AreEqual(2, someInstance.So