Effective C# 3rd 読書メモ 40 即時実行と遅延実行を区別する

宣言的コードは何をすべき(what)かを定義する。命令的コードはやり方(how)を説明する。どちらも必要だが、両者をごちゃ混ぜにすると予期せぬ振る舞いが発生する。 命令的コードは即時実行される。以下ではMethod1〜3 […]

Effective C# 3rd 読書メモ 39 LINQ: FunctionとActionで例外が飛ばないようにする

一連の値に対して処理を行うコードを作成する際に、例外が投げられると、状態の復元に問題が発生する。 以下のようなEmployeeクラスがあるとする。ここでは、MonthlySalaryプロパティのsetterに事前条件のチ […]

Effective C# 3rd 読書メモ 36 クエリ式がどのようにメソッド呼び出しにマップされるか理解する

LINQは2つの概念に基づいている: クエリ言語と、クエリ言語から一式のメソッドへの翻訳である。C#コンパイラはクエリ言語で書かれたクエリ式をメソッド呼び出しに変換する。 全てのクエリ式は、1つ以上のメソッド呼び出しにマ […]