これが期待どおりに機能する理由:
list.ForEach(sub(x) x.Name = "New Name")
しかし、これはそうではありません:
list.ForEach(function(x) x.Name = "New Name")
他に混乱した人はいますか?
List(Of T).ForEach は、値を返す Func (Function) ではなく、値を返さない Action (Sub) を引数として取ります。
VB では、= 記号があいまいです。比較または割り当てに使用できます。ステートメントのあいまいさを解消するためにx.Name = "New Name"
、チームはインジケーター Sub または Function を使用して、これが比較なのか代入なのかを識別しました。の場合はSub(x) x.Name = "New Name"
、割り当てを実行しているか、x の Name パラメータの値を「新しい名前」に設定しています。Function(x) x.Name = New "Name"
x の Name パラメータが "New Name" と同じ場合、比較を行って戻ります。そのため、Sub と Function を使用する場合は注意が必要です。