回答編集履歴
2
訂正
answer
CHANGED
@@ -27,7 +27,9 @@
|
|
27
27
|
|
28
28
|
// ------ (B) ---------
|
29
29
|
// 上記仕様のおかげ(?)で次のようなことは可能になっている
|
30
|
+
/* --- Zuishinさんコメントを受け、xへの代入文の例は取り消させてください ---
|
30
|
-
Func<int> x = bar; // 関数名のみで型が特定される
|
31
|
+
Func<int> x = bar; // 関数名のみで型が特定される=>主張が不適切だった
|
32
|
+
*/
|
31
33
|
baz(bar); // BAZ1の呼び出しと解釈される
|
32
34
|
}
|
33
35
|
|
1
誤記
answer
CHANGED
@@ -40,4 +40,4 @@
|
|
40
40
|
|
41
41
|
ローカル関数の名前が「関数名」というより「第一級関数オブジェクトが格納されている変数名」として捉えるとこういう仕様が自然に感じられる気はします。
|
42
42
|
|
43
|
-
なぜそうしたのかはっきりわかりませんが、上の例で(A)のよう
|
43
|
+
なぜそうしたのかはっきりわかりませんが、上の例で(A)のようなことができる(ローカル関数がオーバーロードできる)ことと、(B)のように第一級関数として扱いやすくなることのどちらを重視するかといえば個人的に(B)が重要な気がしたのでそういう意味では納得できる気がしました。
|