質問編集履歴

3

追記

2017/03/20 08:34

投稿

Zuishin
Zuishin

スコア28660

test CHANGED
File without changes
test CHANGED
@@ -109,3 +109,9 @@
109
109
  array.ForEach(a => Console.WriteLine(a)).ForEach2(a => Console.WriteLine(a));
110
110
 
111
111
  ```
112
+
113
+
114
+
115
+ 追記
116
+
117
+ ForEach に [MethodImpl(MethodImplOptions.NoOptimization)] をつけて最適化を抑制してみましたが、結果は同じでした。さらに、もともと最適化オプションは外してコンパイルしています。

2

追記

2017/03/20 08:34

投稿

Zuishin
Zuishin

スコア28660

test CHANGED
File without changes
test CHANGED
@@ -91,3 +91,21 @@
91
91
  }
92
92
 
93
93
  ```
94
+
95
+
96
+
97
+ 追記
98
+
99
+
100
+
101
+ 次のようにすると、配列の中身が二回出力されました。
102
+
103
+ 最適化が怪しい気がします。
104
+
105
+ ```C#
106
+
107
+ Console.WriteLine("ForEach");
108
+
109
+ array.ForEach(a => Console.WriteLine(a)).ForEach2(a => Console.WriteLine(a));
110
+
111
+ ```

1

表現を修正

2017/03/20 07:32

投稿

Zuishin
Zuishin

スコア28660

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,6 @@
1
1
  Visual Studio 2013 です。
2
2
 
3
- 下記コードを実行すると、ForEach2 は結果を出力するのですが、ForEach による出力がありません。どちらも同じ結果になると思っていたので、驚きました。これは仕様なのでしょうか? それともうちの環境で不具合が起こっているのでしょうか? 仕様とすればどういう仕様なのでしょう?
3
+ 下記コードを実行すると、ForEach2 はコンソールに出力するのですが、ForEach による出力がありません。どちらも同じ結果になると思っていたので、驚きました。これは仕様なのでしょうか? それともうちの環境で不具合が起こっているのでしょうか? 仕様とすればどういう仕様なのでしょう?
4
4
 
5
5
 
6
6