0

以下は私のシナリオです。using を呼び出す必要がありList.Foreach(addressof fn)ます。しかし、オブジェクトをリストの型とその関数として渡す必要があるようですfn(Type of List as Arg)。別のパラメーターを使用できますか?.

従業員クラス

Class Employee
public  string Name
public  String DisplayName
End Class

--

Dim lstEmployee As New List(Of Employee)
Sub Main()
LoadEmployee()
PrintNames()
Update(5)
End Sub

Shared Sub PrintNames()
names.ForEach(AddressOf Print)     ' This will be working fine. 
End Sub

Shared Sub Update(Byval int as integer)
names.ForEach(AddressOf UpdateEmpName) ' Not possible
End Sub

Shared Sub LoadNames()
lstEmployee.Add(new Employee with{.Name="Bruce"})
lstEmployee.Add(new Employee with{.Name="Alfred"})
lstEmployee.Add(new Employee with{.Name="Tim"})
lstEmployee.Add(new Employee with{.Name="Richard"})
End Sub 

Shared Sub Print(ByVal s As Employee)
Console.WriteLine(s.Name)
End Sub 

Shared Sub UpdateEmpName(ByVal s As Employee. ByVal i as integer)
s.DisplayName= "EIN" +i+"-"+s.Name
End Sub 

それは可能ですか?. 私は.net 3.5を使用しています

4

1 に答える 1

0

可能だと思いますが、これはテストされていないコードなので、試してみてください。

Shared Sub Update(Byval int as integer)
    names.ForEach(Sub(emp)
        UpdateEmpName(emp, int) 'param int from method update
    End Sub)
End Sub

どこで宣言されているのかわからないnamesので、他のどこでそれを処理したと思いますか?

于 2013-09-19T13:41:08.680 に答える