副作用のあるコードは書かないほうがいいというものは経験上わかっていたのですが、今まではなぜ書いてはいけないのかのいい例が思いつかずあまり説明できていなかったのですが、いい例を思いついたので書いておきます。 副作用のあるコードとはなんぞや 副作用のあるコードとはを語るうえで副作用のあるコードとはなんなのかを決めておかないといけませんよね。 ここではメソッド名から推測できない作用のあるコードとしておきます。 たとえばのコードを挙げましょう: public class Repository { private IList<string> messages; public string GetTitle() { if(messages == null) { messages = new List<String> { "Hello", "World" }; } return "Title"; } }