1

我有一个继承 Generic.List 的自定义列表,它有一个取消选择名为 DeselectAll 的所有成员的方法

它看起来像这样几个星期并且运行良好。

Public Sub DeselectAll()
    MyBase.ForEach(Function(p As Publipostable) p.ModeEnvoiChoisi = Nothing)
End Sub

今天,它停止工作了?!?我使用委托恢复到早期版本并且效果很好......

Public Sub DeselectAll()
    MyBase.ForEach(AddressOf DeselectModeEnvoi)
End Sub

Private Sub DeselectModeEnvoi(ByVal p As IPublipostable)
    p.ModeEnvoiChoisi = Nothing
End Sub

有没有人见过这种行为?它在一个 asp.net 3.5 应用程序中。

只是想知道,山姆

编辑:停止工作意味着它不再将列表中每个项目的属性 p.ModeEnvoiChoisi 设置为 Nothing。调用 DeselectAll 方法,但所有项目都保留其先前的值...

4

1 回答 1

2

在 .net 3.5 中,VB 没有办法区分相等运算符和集合运算符,因为两者都是“=”并且编译器选择了相等检查(我知道很奇怪)。在 .net 4.0 中,您可以在 lambda 函数中毫无问题地使用集合运算符,但在 .net 3.5 中,您不能在 VB 中使用。

于 2010-12-16T17:01:44.697 回答