まず、.NET 3.5の機能/ラムダの側面について頭を上げることはできません。VB/C/C++でAction/Func/Delegates/Lambdaを使った拡張メソッドを書く#
:どのように次のことが達成されるであろう、心の中で私は、LINQでこれらの機能を毎日使用していますが、私の問題は、実装を理解され、そしてどのような彼らは本当に(ラムダSystem.Funcなどなどを?)を意味する。これにより例として、List内のすべてのオブジェクトのプロパティを特定の値に設定し、更新されたList(Of T)を返すList(Of T)のExtensionメソッドを用意したいと思います。
VB:それはこのように呼ばれることになる
Dim someList As List(Of TextBox) = (New List(Of TextBox)).UpdateExtension(Function(txtb) txtb.Text = "something")
のC#:
List<TextBox> someList = (new List<TextBox>()).UpdateExtension(txtb => txtb.Text = "something");
どの拡張メソッドの外観は、VBとC#の両方で、ご希望ですか?
すなわち:
<Extension()> _
Public Function UpdateExtension(Of T)(ByVal source As List(Of T), ByVal predicate As ??) As List(Of T)
'??
End Function
歓声!
EDIT
多くは、上記を達成することができる、多かれ少なかれ、.ForEachと()を指摘しています。しかし、私が興味を持っていることは、.ForEach()のようなものがどのように実装されているか、つまり上記の問題の解決策の実装に興味があることです。
しかし、ForEachはあなたの変数に割り当てることができるテキストボックスのリストを返しません(あなたのサンプルコードでは、とにかく空になります)。 – Benjol